Object.prototype.__lookupGetter__()

非标准: 该特性是非标准的,请尽量不要在生产环境中使用它!

已弃用: 不再推荐使用该特性。虽然一些浏览器仍然支持它,但也许已从相关的 web 标准中移除,也许正准备移除或出于兼容性而保留。请尽量不要使用该特性,并更新现有的代码;参见本页面底部的兼容性表格以指导你作出决定。请注意,该特性随时可能无法正常工作。

概述

__lookupGetter__ 方法会返回当前对象上指定属性的属性读取访问器函数(getter)。

语法

obj.__lookupGetter__(sprop)

参数

sprop

属性名

示例

var obj = {
    get foo() {
        return Math.random() > 0.5 ? "foo" : "bar";
    }
};

obj.__lookupGetter__("foo")
// (function (){return Math.random() > 0.5 ? "foo" : "bar"})

附注

__lookupGetter__ 方法是非标准的,我们应该使用标准中定义的方法来完成同样的事情,那就是 Object.getOwnPropertyDescriptor() 方法:

var obj = {
    get foo() {
        return Math.random() > 0.5 ? "foo" : "bar";
    }
};

Object.getOwnPropertyDescriptor(obj, "foo").get
// (function (){return Math.random() > 0.5 ? "foo" : "bar"})

如果那个访问器属性是继承来的,你还需要使用 Object.getPrototypeOf()

var obj = {};
var prototype = Object.getPrototypeOf(obj);
Object.getOwnPropertyDescriptor(prototype, "foo").get
// function __proto__() {[native code]}

规范

不属于任何规范。

浏览器兼容性

BCD tables only load in the browser

相关链接