Para la creación de objetos, además de usar literales y nuevos operadores, en el estándar EcMascript 5, object.create () también se puede usar. La función Object.Create () acepta dos objetos como parámetros: se requiere el primer objeto para representar el prototipo del objeto creado; El segundo objeto es opcional para definir las diversas propiedades del objeto creado (como Writable, enumerable).
La copia del código es la siguiente:
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}
Llamar objeto.create () Como el primer parámetro generará un objeto sin un prototipo, que no tendrá ninguna propiedad básica del objeto (por ejemplo, ya que no hay método ToString (), el uso del operador + para este objeto lanzará una excepción)::
La copia del código es la siguiente:
var o2 = object.create (nulo);
console.log ("es" + o2); // Tipo de error, no se puede convertir O2 a tipo primitivo
Para los navegadores que solo admiten el estándar EcMascript 3, puede usar el método de Douglas Crockford para realizar la operación Object.Create ():
La copia del código es la siguiente:
if (typeof object.create! == 'function') {
Object.create = function (o) {
función f () {}
F.Prototype = O;
devolver nuevo f ();
};
}
newobject = object.create (OldObject);