Proxy 文檔:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy
Reflect 文檔:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect
****
* 先通過 Proxy 代理對象攔截目標對象的任意屬性的任意(13種)操作,包括屬性值的讀寫、屬性的添加,、屬性的刪除等。
* 然后通過 Reflect 反射對象,動態地對被代理對象的相應屬性進行特定的操作。
```html
<script type="text/javascript">
//1. 目標對象(被代理對象)
const user = {
name: '張三',
wife: {
name: '小櫻'
}
}
//2. 代理對象
const proxyUser = new Proxy(user, {
//獲取目標對象的屬性值
get(target, prop) {
return Reflect.get(target, prop)
},
//修改或新增目標對象的屬性
set(target, prop, val) {
return Reflect.set(target, prop, val)
},
//刪除目標對象屬性
deleteProperty(target, prop) {
return Reflect.deleteProperty(target, prop)
}
})
//3. 通過代理對象獲取屬性
console.log(proxyUser.name)
//張三
//4. 通過代理對象更改屬性
proxyUser.name = '王五'
console.log(user)
//{name: '王五', wife: {…}}
//5. 通過代理對象添加新屬性
proxyUser.gender = '男'
console.log(user)
//{name: '王五', wife: {…}, gender: '男'}
//6. 通過代理對象刪除屬性
delete proxyUser.gender
console.log(user)
//{name: '王五', wife: {…}}
</script>
```
- nodejs
- 同時安裝多個node版本
- Vue3
- 創建Vue3項目
- 使用 vue-cli 創建
- 使用 vite 創建
- 常用的Composition API
- setup
- ref
- reactive
- 響應數據原理
- setup細節
- reactive與ref細節
- 計算屬性與監視
- 生命周期函數
- toRefs
- 其它的Composition API
- shallowReactive與shallowRef
- readonly與shallowReadonly
- toRaw與markRaw
- toRef
- customRef
- provide與inject
- 響應式數據的判斷
- 組件
- Fragment片斷
- Teleport瞬移
- Suspense
- ES6
- Promise對象
- Promise作用
- 狀態與過程
- 基本使用
- 常用API
- async與await
- Axios