{
function validation(target,validationExt){
return new Proxy(target,{
_validationExt:validationExt,
set(target,key,value){
// 驗(yàn)證是否存在key
if(target.hasOwnProperty(key)){
let va = this._validationExt[key];// 驗(yàn)證value是否符合規(guī)則
if (!!va(value)) {
// 設(shè)置被代理對(duì)象屬性
return Reflect.set(target,key,value);
}else{
throw Error(`不能設(shè)置${key}到${value}`);
}
}else{
throw Error(`${key}不存在`);
}
},
});
}
// 驗(yàn)證規(guī)則
const validationExt = {
name(val){
return typeof val==='string'
},
age(val){
return typeof val === 'number' && val>18
},
}
class Person{
constructor(name,age){
this.name = name;
this.age = age;
return validation(this,validationExt);
}
}
let person1 = new Person('wuding',30);
console.log(person1);
// 下面賦值報(bào)錯(cuò)
// person1.name = 123;
// person1.age = 17;
// 下面賦值正常
person1.name = 'Han';
person1.age = 19;
console.log(person1);
}
es6 Proxy半火、Reflect的簡易應(yīng)用
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門葵孤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來担钮,“玉大人,你說我怎么就攤上這事尤仍◇锝颍” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵宰啦,是天一觀的道長苏遥。 經(jīng)常有香客問我,道長绑莺,這世上最難降的妖魔是什么暖眼? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮纺裁,結(jié)果婚禮上诫肠,老公的妹妹穿的比我還像新娘。我一直安慰自己欺缘,他們只是感情好栋豫,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著谚殊,像睡著了一般丧鸯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嫩絮,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼榜轿!你這毒婦竟也來了幽歼?” 一聲冷哼從身側(cè)響起,我...
- 序言:老撾萬榮一對(duì)情侶失蹤谬盐,失蹤者是張志新(化名)和其女友劉穎甸私,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體飞傀,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡颠蕴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年泣刹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片犀被。...
- 正文 年R本政府宣布西轩,位于F島的核電站员舵,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏藕畔。R本人自食惡果不足惜马僻,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望注服。 院中可真熱鬧韭邓,春花似錦、人聲如沸溶弟。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽辜御。三九已至鸭你,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間擒权,已是汗流浹背袱巨。 一陣腳步聲響...
- 正文 我出身青樓,卻偏偏與公主長得像纳鼎,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子裳凸,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 寫在前面:這篇文章講述了如何利用Proxy和Reflect實(shí)現(xiàn)雙向數(shù)據(jù)綁定贱鄙,個(gè)人系Vue早期玩家,寫這個(gè)小框架的時(shí)...
- Author: Zongwei Zhou | 周縱葦Weibo: @MrGiovanniEmail: zongwe...
- 原文收錄在我的 GitHub博客 (https://github.com/jawil/blog) 姨谷,喜歡的可以關(guān)注...