javascript – 为什么要使用访问器(getter和setter)?

var obj = {
  get foo(){//Why can't I use argument ^!^
    return 'getter';
  },
  set foo(value){
    console.log('setter: '+value);
  }
}

> obj.foo = 'bla'
setter: bla
>obj.foo
'getter'

所以,我想在设置时得到foo的值:

>obj.foo = 'bla'
setter: bla
>obj.foo
getter: bla

使用这样:

get foo(value){//but alas, I can't use any argument in getter
    return 'getter: '+value;
  }

我们能否获得我们设定的价值?我想我不理解访问者的用法,为什么我们专门用它?

最佳答案 可能这会更多地向你解释

var obj = {
 get foo(){
  console.log('getter'); 
  return this._foo;}, 
 set foo(v){
  console.log('setter'); 
  this._foo = v;
 }
}

从传递参数的对象获取值不会意味着什么.
设置传递参数的值意味着并表示需要设置的值.

Chrome控制台.在初始化对象之后

obj.foo = "UI"
setter
"UI"

obj.foo
getter
"UI"
点赞