JavaScriptはどのようにオブジェクトを作成しますか?


1.対象文字数
最も一般的な最も便利な作成方法を以下に示します.
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));