Ger*_*ald 10 javascript methods get set
为什么JavaScript有两种不同的方式来获取/设置对象属性?
例:
//implementation 1
var obj1 = {
"x":1,
get number() {return this.x},
set number(n) {this.x = n}
}
//implementation 2
var obj2 = {
"x":1,
getX: function(){return this.x},
setX: function(n){this.x = n}
}
Run Code Online (Sandbox Code Playgroud)
一种实现方式是否优于另一种?
与普通方法不同,使用get和set使您可以直接对对象的属性进行操作(===简洁代码),而实际上是在幕后调用getter和setter方法。
var obj1 = {
"x":1,
get number() {console.log('get was called'); return this.x},
set number(n) {console.log('set was called'); this.x = n}
};
alert(obj1.number); // calls the getter (and prints to console)
obj1.number = 10; // calls the setter (and prints to console)
Run Code Online (Sandbox Code Playgroud)
正如提到的其他答案一样,请根据您的目标浏览器集来决定是否使用它。
| 归档时间: |
|
| 查看次数: |
6162 次 |
| 最近记录: |