深刻浅出vue原理(1、Object.defineProperty)

vue原理系列

vue原理一vue

vue原理二浏览器

vue原理三bash

vue原理四post

MVVM是什么?特色是什么?

是双向数据绑定,数据影响视图,视图影响数据ui

怎么实现一个MVVM?

对比ng,(脏值检测) vue是数据劫持+发布订阅 不兼容低版本浏览器 Object.defineProperty(对象定义属性)spa

let obj = {}
Object.defineProperty(obj,'objKey',{
    value:'objVal'
})
复制代码

delete删除删不掉是由于configurable默认是false,要配置true 也不能改由于writable默认是false,要改为true才能改code

for(let key in obj){
    console.log(key)
}
复制代码

不能遍历是由于enumerable是false,不可枚举,要改为true 有get、set会报错,要用get、set代替writable和value属性 获取objKey是会调用get方法对象

get(){
    return 'val'
}
复制代码

赋值school是会调用set方法 set方法有个value参数get

set(val){
    console.log(val)
}
复制代码
相关文章
相关标签/搜索