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 })