扫码关注官方订阅号
实在搞不懂setter 和getter是干嘛的,有的地方写的又是set,get,看了很多一些资料还是不太懂他们用在什么地方
小伙看你根骨奇佳,潜力无限,来学PHP伐。
如果你是指ES5开始出现的对象字面量中的set、get方法的话,那么是这样的:
在ES5以前,读/写对象的属性时,产生的结果就是返回了对象属性的值/设置了对象属性的值。
在ES5之后,对于用get/set方法定义的属性来说,对它进行读/写属性时,其结果却是可以由开发者来自定义的。即给了开发者自己去定义“读/写对象的属性”这个两种操作的具体行为的权利,使得灵活性大大提高。
至于可以做什么,举两个例子:
比如可以在某个属性被设置时打印日志:
set: function(pw) { this.pw = pw; console. log('密码被修改了'); }
比如可以在某个属性被设置时更新其他属性:
//假设b是一个依赖a的属性,这样一来b就可以自动更新了 set: function(a) { this.a = a; this.b = a * 100; }
2017年1月9日补充:最近学习C++,发现get/set可看作对属性读/写操作的重载。
来来来,看看这个好玩的东西你就知道了:深入响应式原理
@尤小右写的vue里,数据绑定就用是你迷惑的setter、getter实现的。
vue
setter
getter
high的很,文档解释的也很通俗
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
如果你是指ES5开始出现的对象字面量中的set、get方法的话,那么是这样的:
在ES5以前,读/写对象的属性时,产生的结果就是返回了对象属性的值/设置了对象属性的值。
在ES5之后,对于用get/set方法定义的属性来说,对它进行读/写属性时,其结果却是可以由开发者来自定义的。即给了开发者自己去定义“读/写对象的属性”这个两种操作的具体行为的权利,使得灵活性大大提高。
至于可以做什么,举两个例子:
比如可以在某个属性被设置时打印日志:
比如可以在某个属性被设置时更新其他属性:
2017年1月9日补充:
最近学习C++,发现get/set可看作对属性读/写操作的重载。
来来来,看看这个好玩的东西你就知道了:深入响应式原理
@尤小右写的
vue里,数据绑定就用是你迷惑的setter、getter实现的。high的很,文档解释的也很通俗