1. 程式人生 > >es6---proxy

es6---proxy

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' //就會報錯提示