【问题标题】:How does getProperty work in SpiderMonkey?getProperty 如何在 SpiderMonkey 中工作?
【发布时间】:2016-01-24 18:53:20
【问题描述】:

我正在查看 SpiderMonkey 的源代码并试图了解如何自定义函数“getProperty”。但是很难追踪到“getProperty”真正将属性设置为返回值的正确位置。所以任何人都可以在代码中显示“正确的位置”?

目前,我在 NativeObject.h 中:

inline bool
js::GetProperty(JSContext* cx, HandleObject obj, HandleObject receiver, HandleId id, MutableHandleValue vp)
{
    if (GetPropertyOp op = obj->getOps()->getProperty)
        return op(cx, obj, receiver, id, vp);
    return NativeGetProperty(cx, obj.as<NativeObject>(), receiver, id, vp);
}

op(cx, obj, receiver, id, vp) 会做什么?

谢谢。

【问题讨论】:

    标签: firefox spidermonkey


    【解决方案1】:

    我相信您可以通过实现JSClass(文档过期警告)为脚本提供具有自定义行为的对象。或者这些天,使用 Proxy 在 JS 领域进行操作可能会更容易。

    什么代码负责返回属性取决于对象的种类和属性。我真的不确定您为什么要查看 NativeObject。 jsobj.h 是一种更常见的实现方式。

    您可能还想在 IRC 或other channels listed at the SpiderMonkey MDN page 之一中提问。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-24
      • 1970-01-01
      • 2015-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多