言葉遣いの違いES3、ES5、ES6オブジェクトのプロキシ

ES3プロキシオブジェクト文言:

console.log( '定义私有变量ES3写法' // ES3 
するvar人= 機能(){
     VARのデータ= { 
        名: 'ES3' 
        年齢: 14 
        性別: 'NV' 
    } 
    // 读API 
    このに.get = 機能(キー){
         リターンデータ[キー] 
    } 
    // 写API 
    この .SET = 機能(キー、値){
         場合(キー!== 'セックス' ){ 
            データ[キー] = 
        } 
    } 
}
 // インスタンス宣言
のvar人= 新しい新しい人();
 // 読み
console.table({名:person.get( '名前')を、年齢:person.get( '年齢')、性別:人。 ( 'セックス')})を得る;
// 変更 person.set( '名前'、 'C-ES3は') // ES3-Cの名前変更 console.table({名:person.get( '名前')、年齢:person.get( '年齢')、性別:person.get( '性別' )}); person.set( '性別'、 'ナン') // 保護が提供されているため、ナンの変更が失敗したとしてセックスを変更 console.table({名:person.get( '名前')、年齢:person.get( '年齢')、性別:person.get( '性別')})。

ES5は、代理店の文言オブジェクト:

console.log( 'プライベート変数は、ES5が書かれた定義された' // ES5 
VAR人= { 
   名: 'ES5' 
   年齢: 14 
} 
// 保護を設定し、書き込むことができません 
Object.defineProperty(人、 'セックス' 、{ 
   書き込み可能:falseに
   :値 'NV' 
)} 
// 読み取り
console.table({ 
   名:person.nameを、
   年齢:person.Age、
   性別:Person.sexは
})
//は変更 
person.name = 'C-ES5を'        // ES5-Cの名前変更
   console.tableを({ 
   person.name:名
   年齢:person.Age、
   性別:Person.sex 
})
Person.sex = 'ナン'          // ナンの変更に失敗したような保護を提供するので、性別を変更
console.table({ 
    名:person.name、
    年齢:person.Age、
    性別:Person.sex 
})

ES6プロキシオブジェクト文言:

console.log( 'プライベート変数書かES6定義された' 
PERSON1のLET = { 
    名: 'ES6' 
    年齢: 14 
    性別: 'NV' 
} 
// オブジェクトのプロキシ設定 
せPERSON1 = 新新PERSON1のプロキシを(、{
     // 読み
    GET(ターゲット、KEY){
         戻りターゲット[キー] 
    } 
    // 書き込み
    SET(ターゲット、キー、値){
         IF(キー== 'セックス'!{)
           ターゲット[キー] = 
        } 
    } 
)}; 
// 読取
console.table({
    名前:person1.name、
    年齢:person1.age、
    性別:person1.sex 
})
// 名前を変更はES6-Cのためのものである 
person1.name = 'C-ためES6' 
console.table({ 
    person1.name:名
    年齢:person1.age、
    性別:PERSON1 .sex 
})
// ナンの変更に失敗したような保護を提供するので、性別を変更 
person1.sex = 'ナン' 
console.table({ 
    person1.name、:名前
    年齢:person1.age、
    性別:person1.sex 
})

 

おすすめ

転載: www.cnblogs.com/xue-shuai/p/11539674.html