ES6學習筆記三(proxy和reflect)

2022-07-21 04:42:13 字數 1849 閱讀 2621

proxy用法

//**;

let monitor=new

proxy(obj,,

//攔截物件設定屬性

set(target,key,value)else

},//攔截key in object操作判斷是否屬於object的某個屬性

has(target,key)

else

},//攔截delete

deleteproperty(target,key)

else

},//保護屬性 攔截object.keys,object.getownpropertysymbols,object.getownpropertynames

ownkeys(target)

});console.log(

'get

',monitor.time);

monitor.time='

2019

';

monitor.name='

mukewan';

console.log(

'set

',monitor.time,monitor); //

set 2018-03-11 proxy 

console.log(

'has

','name

'in monitor,'

time

'in monitor); //

true false

//delete monitor.time;

'delete',monitor);

//還是存在,沒被刪掉

//delete monitor.time;

'delete',monitor);

//delete monitor._r這一項;

'delete',monitor);

//發現被刪除了_r這一項

console.log(

'ownkeys

',object.keys(monitor)); //

["name", "_r"] time被保護

}

reflect

reflect用法跟proxy一樣,他有的方法他都有,使用起來更簡單

;

console.log(

'reflect get

',reflect.get(obj,'

time

'));

reflect.

set(obj,'

name

','mukewan');

console.log(obj);

console.log(

'has

',reflect.has(obj,'

name

'));

}

應用場景 資料校驗

else

到$`)}}

else

不存在`)}}

})}

const personvalidators=,

age(val),

mobile(val)

}class

person

}const person=new person('

lilei

',30

); console.log(person);

person.name='

han mei mei';

console.log(person);

}

ES6學習筆記三

class 關於類 es6之前使用function定義 function child name es6引入class 關鍵字,用於定義類 class child 類的方法實際上都是定義在prototype物件上的,可以使用object.assgin 在prototype上新增方法 prototype...

es6 Proxy 學習筆記

proxy 可以理解成,在目標物件之前架設一層 攔截 外界對物件的訪問都必須先通過這層攔截,通過這種 操作的機制,可以對外界的訪問進行過濾和修改。let person let obj new proxy person,obj.name lilei obj.age 暫無該值 proxy例項通過prox...

ES6學習筆記

let 塊變數 作用域為塊 const 常亮 作用域為當前塊 解構賦值 例 var x,y 1,2 字元擴充套件 at includes startswith endswith repeat codepointat 模板字串 例 正則的uiy 數值擴充套件 number.isfinite numbe...