Pour la création d'objets, en plus d'utiliser des littéraux et de nouveaux opérateurs, dans la norme ECMAScript 5, object.create () peut également être utilisé. La fonction object.create () accepte deux objets comme paramètres: le premier objet est nécessaire pour représenter le prototype de l'objet créé; Le deuxième objet est facultatif pour définir les différentes propriétés de l'objet créé (tel que écrit, énumérable).
La copie de code est la suivante:
var o = object.create ({x: 1, y: 7});
console.log (o); // objet {x = 1, y = 7}
console.log (o .__ proto __); // objet {x = 1, y = 7}
L'appel objet.create () car le premier paramètre générera un objet sans prototype, qui n'aura pas de propriétés d'objet de base (par exemple, car il n'y a pas de méthode toString (), l'utilisation de l'opérateur + pour cet objet lancera une exception):
La copie de code est la suivante:
var o2 = object.create (null);
Console.log ("c'est" + o2); // Erreur de type, Impossible de convertir l'O2 en type primitif
Pour les navigateurs qui ne prennent en charge que la norme ECMAScript 3, vous pouvez utiliser la méthode de Douglas Crockford pour effectuer l'opération objet.Create ():
La copie de code est la suivante:
if (typeof object.create! == 'fonction') {
Object.create = function (o) {
fonction f () {}
F.prototype = o;
retourner nouveau f ();
};
}
newObject = object.create (oldObject);