JavaScriptはどのようにオブジェクトを作成しますか?
1382 ワード
1.対象文字数
最も一般的な最も便利な作成方法を以下に示します.
実は字面量はobjectを用いる.createのショートカット、下のコードは上と等価です
2.new Object()
new Object()について議論すると、実際にはnew演算子について議論しています.new演算子は実際に仕事をしています.
2.1新しいオブジェクトの作成
2.2新しく作成したオブジェクトのコンストラクション関数を関数Personにリンクする
2.3オブジェクトのプロトタイプチェーンをPersonにリンクする.prototype
新しいオブジェクトをプロトタイプチェーンに沿ってコンストラクション関数を使用できるようにする方法
2.4入力されたパラメータを新しく作成されたオブジェクトに拡張する
3.Object.create(ES5)
ES 5以前はnewのみを用いてプロトタイプチェーン統合を実現した.要するにcreate()とフォント量オブジェクトはnew object()メソッドを置き換える必要があります.Object.create()は、2つのパラメータを受信できます.プロトタイプを提供するオブジェクト、オプションのプロパティオブジェクト(このオブジェクトには、新しく作成したオブジェクトの構成が含まれています).
最も一般的な最も便利な作成方法を以下に示します.
var foo = {
bar: 'bar'
}
実は字面量はobjectを用いる.createのショートカット、下のコードは上と等価です
var foo = Object.create(Object.prototype,{
bar: {
writable: true,
configurable: ture,
value: 'bar'
}
})
2.new Object()
var Person = function(myname){
this.name = myname;
}
var me = new Person('Joe');
new Object()について議論すると、実際にはnew演算子について議論しています.new演算子は実際に仕事をしています.
2.1新しいオブジェクトの作成
me = {}
2.2新しく作成したオブジェクトのコンストラクション関数を関数Personにリンクする
//true
me.constructor === Person
2.3オブジェクトのプロトタイプチェーンをPersonにリンクする.prototype
新しいオブジェクトをプロトタイプチェーンに沿ってコンストラクション関数を使用できるようにする方法
//true
me.__proto__ === Person.prototype
2.4入力されたパラメータを新しく作成されたオブジェクトに拡張する
3.Object.create(ES5)
ES 5以前はnewのみを用いてプロトタイプチェーン統合を実現した.要するにcreate()とフォント量オブジェクトはnew object()メソッドを置き換える必要があります.Object.create()は、2つのパラメータを受信できます.プロトタイプを提供するオブジェクト、オプションのプロパティオブジェクト(このオブジェクトには、新しく作成したオブジェクトの構成が含まれています).
var Car = {
drive: function (miles) {
return this.odometer += miles;
}
};
var tesla = Object.create(Car, {
'odometer': {
value: 0,
enumerable: true
}
));
// 10
console.log(tesla.drive(10));