非标准
该特性是非标准的,请尽量不要在生产环境中使用它!
已废弃
该特性已经从 Web 标准中删除,虽然一些浏览器目前仍然支持它,但也许会在未来的某个时间停止支持,请尽量不要使用该特性。
概述
__defineGetter__
方法可以将一个函数绑定在当前对象的指定属性上,当那个属性的值被读取时,你所绑定的函数就会被调用。
语法
obj.__defineGetter__(prop, func)
参数
-
prop
- 一个字符串,表示指定的属性名。
-
func
-
一个函数,当
prop
属性的值被读取时自动被调用。
描述
__defineGetter__ 方法可以为一个已经存在的对象设置(新建或修改)访问器属性,
而 对象字面量中的 get 语法 只能在新建一个对象时使用。
示例
// 请注意,该方法是非标准的: var o = {}; o.__defineGetter__('gimmeFive', function() { return 5; }); console.log(o.gimmeFive); // 5 // 请尽可能使用下面的两种推荐方式来代替: // 1. 在对象字面量中使用 get 语法 var o = { get gimmeFive() { return 5; } }; console.log(o.gimmeFive); // 5 // 2. 使用 Object.defineProperty 方法 var o = {}; Object.defineProperty(o, 'gimmeFive', { get: function() { return 5; } }); console.log(o.gimmeFive); // 5
规范
不属于任何规范。
浏览器兼容性
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) | (Yes) |