您的位置:首页 > Web前端 > JavaScript

JavaScript中Get/Set访问器

2015-08-22 14:13 627 查看
ECMAScript 262v5带来的新东西,FF把它归入为javaScript 1.8.5的功能之一。


语法:

Object.defineProperty(obj, prop, descriptor)


参数:

obj:目标对象

prop:需要定义的属性或方法的名字。

descriptor:目标属性所拥有的特性。


可供定义的特性列表:

value:属性的值
writable:如果为false,属性的值就不能被重写。
get: 一旦目标属性被访问就会调回此方法,并将此方法的运算结果返回用户。
set:一旦目标属性被赋值,就会调回此方法。
configurable:如果为false,则任何尝试删除目标属性或修改属性以下特性(writable, configurable, enumerable)的行为将被无效化。
enumerable:是否能在for...in循环中遍历出来或在Object.keys中列举出来。

[javascript] view
plaincopy





function Person() {

var age = new Date().getFullYear() - 18;

Object.defineProperty(this, "age", {

get: function () { alert("内部存储数据为:" + age); return new Date().getFullYear() - age; },

set: function (value) { age = value; }

});

}

使用以下代码测试:

[javascript] view
plaincopy





var p = new Person();

p.age = 1994;

alert("外部获取到的数据为:" + p.age);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: