Untuk pembuatan objek, selain menggunakan literal dan operator baru, dalam standar ECMascript 5, Object.create () juga dapat digunakan. Fungsi objek.create () menerima dua objek sebagai parameter: objek pertama diperlukan untuk mewakili prototipe objek yang dibuat; Objek kedua adalah opsional untuk mendefinisikan berbagai sifat dari objek yang dibuat (seperti writable, enumerable).
Salinan kode adalah sebagai berikut:
var o = object.create ({x: 1, y: 7});
console.log (o); // objek {x = 1, y = 7}
console.log (o .__ proto __); // objek {x = 1, y = 7}
Calling Object.create () Sebagai parameter pertama akan menghasilkan objek tanpa prototipe, yang tidak akan memiliki properti objek dasar (misalnya, karena tidak ada metode tostring (), menggunakan operator + untuk objek ini akan melempar pengecualian):
Salinan kode adalah sebagai berikut:
var o2 = object.create (null);
Console.log ("Ini" + O2); // Ketik kesalahan, tidak dapat mengonversi O2 menjadi tipe primitif
Untuk browser yang hanya mendukung standar ECMascript 3, Anda dapat menggunakan metode Douglas Crockford untuk melakukan operasi objek.create ():
Salinan kode adalah sebagai berikut:
if (typeof object.create! == 'function') {
Objek.create = function (o) {
fungsi f () {}
F.prototype = o;
mengembalikan f baru ();
};
}
newObject = object.create (oldObject);