MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

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

已废弃
该特性已经从 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)

相关链接

文档标签和贡献者

 此页面的贡献者: ziyunfei, LinusYu
 最后编辑者: ziyunfei,