对象属性是由名字、值和一组特性构成的。
在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