Para a criação de objetos, além de usar literais e novos operadores, no padrão ECMAScript 5, object.create () também pode ser usado. A função object.Create () aceita dois objetos como parâmetros: o primeiro objeto é necessário para representar o protótipo do objeto criado; O segundo objeto é opcional para definir as várias propriedades do objeto criado (como gravidade, enumerável).
A cópia do código é a seguinte:
var o = object.create ({x: 1, y: 7});
console.log (o); // objeto {x = 1, y = 7}
console.log (o .__ proto __); // objeto {x = 1, y = 7}
Calling Object.Create () como o primeiro parâmetro gerará um objeto sem um protótipo, que não terá propriedades básicas de objeto (por exemplo, uma vez que não há método ToString (), usando o operador + para este objeto, lançará uma exceção):
A cópia do código é a seguinte:
var o2 = object.create (nulo);
console.log ("é" + o2); // tipo de erro, não é possível converter O2 para o tipo primitivo
Para os navegadores que suportam apenas o padrão Ecmascript 3, você pode usar o método de Douglas Crockford para executar a operação Object.Create ():
A cópia do código é a seguinte:
if (typeof object.create! == 'function') {
Object.create = function (o) {
função f () {}
F.Prototype = O;
retornar novo f ();
};
}
newObject = object.Create (OldObject);