es6---proxy
阿新 • • 發佈:2018-12-20
es 6的學習
es6 proxy物件的學習
有時候,我們在程式碼中需要對自己定義的物件的有一些屬性進行保護,不能讓使用者進行修改,最常見的就是人類的性別;
具體寫法
首先定義一個物件
let obj = {
name: 'stephen chow',
age: 15,
sex: 'male'
}
理解Proxy(參考了阮一峰的部落格)
Proxy 用於修改某些操作的預設行為,等同於在語言層面做出修改,所以屬於一種“超程式設計”(meta programming),即對程式語言進行程式設計。
Proxy 可以理解成,在目標物件之前架設一層“攔截”,外界對該物件的訪問,都必須先通過這層攔截,因此提供了一種機制,可以對外界的訪問進行過濾和改寫。Proxy 這個詞的原意是代理,用在這裡表示由它來“代理”某些操作,可以譯為“代理器”。
例子程式碼:
let person = new Proxy(obj,{
get: function(tartet,key){
return target[key];
}
set: function(tartet,key,value){
if(key !== 'sex'){
target[key] = value
}
}
})
這個例子保護了person物件中的sex,不讓別人隨意修改,寫法簡單,可見es6的強大;
在嚴格模式下use strict
,
person.name = 'stephenWu5' //沒有問題,能正常賦值
person.sex = 'female' //就會報錯提示