js对象取值有两种方法:
1.通过点的方式(object.key)
2.通过 [ ] 的方式(object[key])
正常情况下,一般用对象'.'对应的属性名,还有一种是采用‘[]’来获取对应属性的值。
好处是:
- 如果事先对象属性的
名称未知,或者说调用的属性是动态变化的, - 而且这里的属性不存在,也不会报错,只会给出undefined未定义,就可以摆脱点的束缚
- 用中括号的方式可以最大程度地提升对象调用属性的灵活度!
在学习vue3响应式原理的时候老师用到了这种方法:
let person = {
name:'张三',
age:18
}
const p = new Proxy(person,{
get(target, propName){
return target[propName]
// 用 . 的话说明直接在person中找propName属性
// 而propName是动态的值,是变量
},
set(target, propName, value){
target[propName] = value
},
deleteProperty(target, propName){
return delete target[propName]
},
})