使用 getter 和 setters vs 在 javascript 中定义属性
Using getter and setters vs defining properties in javascript
除了编码风格之外,还有以下优点/缺点:
Circle.prototype = { radius : 10};
Object.defineProperty(Circle.prototype, 'circumference', {
get: function() { return 2*Math.PI*this.radius; }
});
与
Circle.prototype = {
radius : 10,
get circumference() { return 2*Math.PI*this.radius; }
}
在属性定义中,JavaScript 通过内部方法DefineOwnProperty
处理它,其中赋值由内部方法 Put
处理。简而言之,第二个检查属性是否为只读,如果是,则导致拒绝。这在使用只读属性时可能会产生后果,这会阻止分配,但不会阻止定义。
如果要创建新属性,最好使用定义。如果要更改属性的值,可以使用赋值。
看看这里更多,非常有趣的文章。
编辑:实际上,defineProperty
用于定义只读属性等原因以及有关所定义属性行为的其他原因。也请看这里了解更多。
相关文章:
- 在文本区域禁用javascript定义的keydown事件并恢复默认行为
- 确定是否使用javascript定义动态选择
- Javascript-定义属性与原型
- JavaScript定义缺少()
- 使用此 V/s 原型的 Javascript 定义方法
- JavascriptCore:从本机代码执行JavaScript定义的回调函数
- 如何使用 Parse.promise javascript 定义一个承诺数组并获取结果数组 [parse.com]
- 如何使用Javascript定义动画图像中的周期数
- 使用Javascript定义未定义的变量
- JavaScript:定义两个类之间的距离
- JavaScript定义数组大小并从另一个数组进行克隆
- Javascript定义全局变量
- AMD兼容的JavaScript-定义然后返回与仅返回之间的任何区别
- Javascript定义-然后调用语法
- 页面特定的javascript..最好是内联或在主Javascript定义中
- 用Parse JavaScript定义两个用户之间的相互关系
- 有没有为Javascript定义showModalDialog方法的标准?
- 用javascript定义一个多维数组
- Javascript:定义带或不带原型的函数
- 为XML原型函数的JavaScript定义原型属性