什么是set和get
set和get是js对象中的访问器属性,介于属性和方法之间,一般成对出现,只存在于ES6。
举一个简单的例子:
var obj = { _num = 0, set num(value){ //set 方法有且仅有一个参数,不适用retrun返回内容 this._num = value; }, get num(){ // get 方法不能有参数,且必须用return返回内容 return this._num; } }
set和get都有哪些特征
-
set
有且仅有一个参数,赋值的时候执行函数:
obj.num++;
set如果是对象,必须要改变对象的引用地址或者对象本身重新赋值才会触发set函数,如果只改变对象的属性,不会触发
-
get
不能有参数,且必须用return返回,取值的时候执行函数:
console.log(obj.num)
-
set和get
set和get一般一起出现,如果只定义了一个会有特殊意义:
-
如果只有get,表示该属性只可读,不可写
-
如果只有set,表示该属性只可写,不可读
-