Getter/Setter是一个万恶的概念,其实就是一个规定好参数和context的函数标准。
let obj = {
a:1,
b:0
}
取a的值 obj.a 就是getter
设置a的值obj.a=10 就是setter
如果我想统计 a被访问了多少次,把次数统计到b中
let obj = {_a:0,b:0}
Object.defineProperty(obj,'a',{
get () {
this.b ++
return this._a
},
set (a) {
this._a = a
}
})
log(obj.a) // 0
log(obj) //{"_a": 0, "b": 1}
obj.a = 100
log(obj) // {"_a": 100, "b": 1}
当调用obj.a实际上执行的是get函数,当调用obj.a=100 实际上执行的是 set函数。这个就是getter和setter
Vue-什么叫把属性转化成getter/setter
vue的数据改变需要更新到视图中的,那么Vue是如何知道数据啥时候改变呢?
就是通过在属性上加上它自己的setter,正如上面属性a的setter,可以在里面加上通知『我改变』 的逻辑。把属性转化成getter/setter 这里有两个名词,一个是属性,一个是getter/setter,属性可以理解为默认的getter/setter,也就是没有自定义的逻辑在里面,就是单纯的访问和设置,getter/setter是会加上Vue自己的逻辑的。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/137401.html