オブジェクトの作成には、リテラルと新しい演算子を使用することに加えて、ECMAScript 5 Standardで、Object.create()も使用できます。 object.create()関数は2つのオブジェクトをパラメーターとして受け入れます。最初のオブジェクトは、作成されたオブジェクトのプロトタイプを表すために必要です。 2番目のオブジェクトは、作成されたオブジェクトのさまざまなプロパティ(書き込み可能、列挙可能など)を定義するためにオプションです。
コードコピーは次のとおりです。
var o = object.create({x:1、y:7});
console.log(o); // object {x = 1、y = 7}
console.log(o .__ proto __); // object {x = 1、y = 7}
Object.create()を最初のパラメーターとして呼び出します。プロトタイプなしでオブジェクトを生成します。これには、基本的なオブジェクトプロパティがありません(たとえば、ToString()メソッドがないため、このオブジェクトに +演算子を使用すると例外がスローされます):
コードコピーは次のとおりです。
var o2 = object.create(null);
console.log( "It Is" + o2); //タイプエラー、O2をプリミティブタイプに変換することはできません
ECMAScript 3 Standardのみをサポートするブラウザの場合、Douglas Crockfordの方法を使用してObject.create()操作を実行できます。
コードコピーは次のとおりです。
if(typeof object.create!== 'function'){
object.create = function(o){
関数f(){}
f.prototype = o;
新しいf()を返します。
};
}
newObject = object.Create(OldObject);