JavaScript get/set 方法与标准方法 [英] JavaScript get/set methods vs. standard methods
本文介绍了JavaScript get/set 方法与标准方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
为什么 JavaScript 有两种不同的方式来获取/设置对象属性?
Why does JavaScript have two different ways to get/set object properties?
示例:
//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}
}
一种实现方式比另一种有优势吗?
Does one implementation style have advantages over the other?
推荐答案
与普通方法不同,使用 get
和 set
可以直接操作对象的属性(=== 更简洁/更少的代码)——同时在幕后实际调用 getter 和 setter 方法.
Unlike normal methods, using get
and set
lets you operate on the object's properties directly (=== cleaner/lesser code) - while actually invoking the getter and setter methods behind-the-scenes.
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)
正如其他答案所提到的,根据您的目标浏览器设置决定是否使用它.
As the other answer mentioned, decide for/against using this depending on your target browser set.
这篇关于JavaScript get/set 方法与标准方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文