javascript对象中访问器和普通函数有什么区别?

时间:2016-06-23 05:58:37

标签: javascript function accessor

除了调用它们的方式之外,javascript对象中这两个函数(一个是访问器属性getter)之间的具体区别是什么?

var o = {
  foo: function() { return "bar"; },
  get foo2() { return "bar2"; }
}

1 个答案:

答案 0 :(得分:3)

  

MDN开始,有时需要允许访问返回动态计算值的属性,或者您可能希望反映内部变量的状态而无需使用显式方法调用。在JavaScript中,这可以通过使用 getter 来完成。

  

method是与function相关联的object,或者简单地说,方法是作为函数的对象的属性。方法的定义方式为normal functions,但必须将它们指定为对象的属性。

foo2更像是一个属性,而不是一个能够/可以保存动态值的方法。



var o = {
  foo: function() {
    return "bar";
  },
  get foo2() {
    return "bar2";
  }
};
//To invoke 'foo'
console.log(o.foo());
//To invoke 'foo2'
console.log(o.foo2);