对象属性是由名字、值和一组特性构成的。
在ES5中,属性值可以用一个或两个方法替代,这两个方法就是getter和setter。
由getter和setter定义的属性称做 “访问器属性”,它不同于 “数据属性”,数据属性就是一个简单的值。

当程序查询访问器属性的值时,JS调用getter方法(无参数)。
这个方法的返回值就是属性存取表达式的值。

当程序设置一个访问器属性的值时,JS调用setter方法,将赋值表达式右侧的值当做参数传入setter。从某种意义上讲,这个方法负责 “设置”属性值。可以忽略setter方法的返回值。

和数据属性不同,访问器属性不具有可写性。
如果属性同时具有getter和setter,那么它是一个读/写属性。
如果它只有getter方法,那么它是一个只读属性。
如果它只有setter方法,那么它是一个只写属性(数据属性中有一些例外),读取只写属性总是返回undefined.

var obj={
  a:1,
  b:2,
  get a(){
    alert(666);
  }
};
console.log(obj.a);

https://www.cnblogs.com/hanxuming/p/5793489.html

作者 铁血 汉子 2018年4月1日
2024/11/22/12:38:50am 2018/4/1/16:16:36
0 2446