defineProperty
let obj = {
name : "の",
age:"18"
}
// obj : 指定的操作对象
// "name" : 指定对象的指定属性(这里可以是已有的属性值。也可以是新来的,用做添加新属性)
// {} : 对指定属性的 相关设置
Object.defineProperty(obj,"name",{
//1. // 配置是否允许被删除 true(默认值)可以被删除 , false不能被删除
configurable: true,
//2. 配置是否允许被枚举, true(默认值) 允许, false 不允许
// 是否允许被枚举 === 是否允许被遍历访问
enumerable: true,
//3. 配置是否允许被修改,true(默认值) 允许, false 不允许
// 默认值为 true,没有业务需要,不需要设置
// 对 set方法: 默认值 true 时, 没有影响
// 设置为 true 时, 发生冲突
// writable: true,
//4. value: 用于对指定属性的 赋值, 获取值 , 默认值 为undefind
set(newVal){
console.log("这是想要设置的新值"+newVal);
value = newVal;
},
get(){
console.log("我被触发了");
return value;
}
});
mvvm
mvc 模式: 之前的市面是很常见很流行的一个概念,一个编程规范。
mvvm: model(模型-数据) + view(视图) + viewModel(视图模型)
遵循的基本原则: 数据驱动视图的方式
mvvm 的本质: 就是mvc的改进版,mvvm 就是将其中的 view的状态和行为 抽象化
ViewModel 的任务 : 让我们将视图和数据区分开,并通过vm来建立连接
它可以取出 m 中的数据,同时帮忙处理view中需要展示的内容所需的业务逻辑