【问题标题】:JavaScript get/set methods vs. standard methodsJavaScript get/set 方法与标准方法
【发布时间】:2014-09-07 22:19:08
【问题描述】:

为什么 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}
}

一种实现风格比另一种有优势吗?

【问题讨论】:

    标签: javascript methods get set


    【解决方案1】:

    与普通方法不同,使用 getset 可让您直接操作对象的属性(=== 更简洁/更简洁的代码) - 同时在后台实际调用 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)
    

    正如提到的另一个答案,根据您的目标浏览器设置决定支持/反对使用它。

    【讨论】:

      猜你喜欢
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 2018-02-26
      • 2013-05-20
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多