Object.prototype.__lookupSetter__()

已废弃
该特性已经从 Web 标准中删除,虽然一些浏览器目前仍然支持它,但也许会在未来的某个时间停止支持,请尽量不要使用该特性。

__lookupSetter__ 方法是用来返回一个对象的某个属性上绑定了 setter (设置器)的钩子函数的引用。
 

语法

obj.__lookupSetter__(sprop)

参数说明

sprop
一个字符串类型,表示要返回的 setter 钩子的函数名。

返回值

一个绑定了setter的特殊属性的函数引用。

描述

如果一个 setter 被定义在了一个对象的属性上,则不能直接通过该属性来获取引用 setter 所设置的钩子的函数,因为该属性是该函数的返回值,但,__lookupSetter__ 可以被用来获取对 setter 函数的引用。

不过现在可以使用标准的方法:

Object.getOwnPropertyDescriptor().

示例

var obj = {
  set foo(value) {
    this.bar = value;
  }
};


// 非标准,并且不推荐使用。
obj.__lookupSetter__('foo')
// (function(value) { this.bar = value; })


// 标准且推荐使用的方式。
Object.getOwnPropertyDescriptor(obj, 'foo').set;
// (function(value) { this.bar = value; })

规范

规范 状态 备注
ECMAScript Latest Draft (ECMA-262)
Object.prototype.__lookupSetter__()
Draft 包含在(规范性)附件中,用于Web浏览器的附加ECMAScript遗留功能(请注意,这份规范编撰的内容已经是准备实现的了)。

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) 11 (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) ? ? (Yes)

相关链接