1. Object.create(プロトタイプ[、記述子]):新しいオブジェクトを作成
1)プロトタイプとして指定されたオブジェクトに新しいオブジェクトを作成します。
2)新しいプロパティを指定し、プロパティを説明
値:指定された値
書き込み可能:識別現在のプロパティ値が変更可能なデフォルトはtrueです
取得:コールバック関数を現在の属性値を取得します
セット:現在のプロパティ値の変更を監視するためのコールバック
<!DOCTYPE HTML> <HTML LANG = " EN " > <HEAD> <メタ文字コード= " UTF-8 " > <META NAME = " ビューポート"コンテンツ= " 幅=装置幅、初期の規模= 1.0 " > <メタHTTP-当量= " X-UA-互換性のある"コンテンツ= " IE =エッジ" > <タイトル>ドキュメント</ TITLE> </ HEAD> <BODY> <SCRIPT> ' 厳格な使用'// 1. Object.create(プロトタイプ、[記述子]) // 役割:新しいオブジェクトのプロトタイプが作成されるオブジェクトを指定する // 新しい新しいオブジェクトの属性、およびプロパティの説明を指定 // 値:指定値 // 現在のプロパティを変更できるかどうかを書き込み可能な識別を、デフォルトはfalseです // 設定可能:現在のプロパティを削除できるかどうかを識別し、デフォルトはfalseにある // 列挙:属性は、この列挙にのために使用することができるかどうかを識別し、デフォルトはfalse VAR OBJ = {ユーザ名:「DAMU 」、年齢:30 } VAR OBJ1 = {} // オブジェクト大文字O // OBJ1 Object.create =(OBJ); // はconsole.log(OBJ1) // OBJ1追加属性 // OBJ1 Object.create =(OBJ、{ // 性別:{ // 値: 'M' // } // }) // はconsole.log(obj1.sex) // OBJ1の特性変更 // OBJ1 = Object.create(OBJ、{ // 性別:{ // 値: 'M'、 // 書き込み可能:trueに // } // }) // はconsole.log(obj1.sex) // obj1.sex = '女性' // にconsole.log(obj1.sex); // 削除OBJ1属性 // OBJ1 Object.create =(OBJ、{ // セックス:{ // 値: '男'、 // 書き込み可能:真、 // 設定:真 // } // }) // はconsole.log(obj1.sex) // obj1.sex = '女' // はconsole.log(OBJ1 .sex) // 削除obj1.sex。 // にconsole.log(OBJ1) // ために枚举 OBJ1 = Object.create(OBJ、{ 性別:{ 値:' 男' 、 書き込み可能:真、 設定:真、 列挙:真 } }) のための(VAR I でOBJ1){ にconsole.log(I) } </ SCRIPT> </ body> </ HTML>
2. Object.defineProperties(オブジェクト記述子は):オブジェクトを指定した拡張属性の複数として定義されます
<!DOCTYPE HTML> <HTML LANG = " EN " > <HEAD> <METAのcharset = " UTF-8。" > <タイトル> 03_Objectが延長</ TITLE> </ HEAD> <BODY> <! - ES5は、オブジェクトに拡張一般的に2を使用したいくつかの静的な方法: 1 。Object.create(プロトタイプ、[記述子]) * プロトタイプとして指定されたオブジェクトの新しいオブジェクトを作成する:役割 * 新しいオブジェクトの新しい属性を指定し、かつ説明プロパティ 値:指定値の 書き込み可能:現在のプロパティ値が変更されたかどうかを識別するには、デフォルトはfalseで 設定可能:現在の属性は、デフォルトはfalseで削除できるかどうかを識別する 列挙は:あなたが使用できる場合は、現在のプロパティを識別するにはfalseに列挙デフォルト 2オブジェクト..DefinePropertiesメソッド( オブジェクト、記述子) * 役割:指定されたオブジェクトの拡張属性の複数の定義 * GET :現在の属性値するコールバックを得るために使用 * SET :価値コールバックがトリガ電流特性、及び引数の値を変更する修飾される * アクセサプロパティは:セッター、ゲッターのための1つの記憶された値、値 - > <スクリプトタイプ= " テキスト/ JavaScriptを" > // Object.defineProperties(オブジェクト、記述子)VAR OBJ2 = { firstNameの:' カレー' 、 lastNameの:' スティーブン' }; Object.defineProperties(OBJ2が、{ のfullName:{ GET :関数(){ 戻り、これを .firstName + ' - ' + この.lastName }、 セット:機能(データ){ VARの名= data.split(' - ' )。 この .firstName =名[ 0 ]。 この .lastName =名[ 1 ]。 } } })。 console.log(obj2.fullName)。 obj2.firstName = ' ティム' ; obj2.lastName = ' ダンカン' ; console.log(obj2.fullName)。 obj2.fullName = 「神戸ブライアント」; console.log(obj2.fullName)。 </スクリプト> </ BODY> </ HTML>
3。
オブジェクト自体の二つの方法
* GETプロパティ名(){}は、現在の属性値コールバック得るために使用される
*セットプロパティ名を(){}は、現在の属性値変更コールバックを監視するために使用されています
<!DOCTYPE HTML> <HTML LANG = " EN " > <HEAD> <METAのcharset = " UTF-8。" > <タイトル>タイトル</ TITLE> <ヘッド/> <BODY> <! - 二つのオブジェクト自体方法 * GET プロパティ名(){}現在の属性値コールバック得るために使用される * SET プロパティ名を(){}現在の属性値変更コールバックを監視するために使用される - > <スクリプトタイプ= 「テキスト/ JavaScriptの」 > VAR OBJ = { firstNameの:' 神戸' 、 lastNameの:「ブライアント」、 GET のfullName(){ 戻り 、この .firstName + ' ' + この.lastName 、} セットのfullName(データ){ VARの(名= data.split ' ' )。 この .firstName =名[ 0 ]。 この .lastName =名[ 1 ]。 } }。 console.log(obj.fullName)。 obj.fullName = ' カレースティーブン' ; console.log(obj.fullName)。 </ SCRIPT> </ BODY> </ HTML>