1. Constructeur
La valeur du constructeur est une fonction. Dans JavaScript, les valeurs, les tableaux, les fonctions et les objets de types sauf Null et Undefined ont un attribut de constructeur. comme:
Copiez le code comme suit: var a = 12, // numéro
b = 'str', // chaîne
c = false, // booléen
D = [1, 'D', fonction () {return 5;}], // Array
e = {nom: 'e'}, // objet
f = fonction () {return 'function';
Console.log ('A:', A.Constructor);
console.log ('b:', B.Contructor);
Console.log ('C:', C.Constructor);
Console.log ('D:', D.Constructor);
Console.log ('E:', E.Contructor);
console.log ('f:', f.constructeur);
Les constructeurs ci-dessus sont intégrés en JavaScript, et nous pouvons également personnaliser les constructeurs, tels que:
La copie de code est la suivante:
fonction a (name) {
this.name = name;
}
var a = new a ('a');
console.log (A.Constructor);
Lorsque vous appelez le constructeur, vous devez utiliser le nouveau mot-clé.
La copie de code est la suivante: var a = 4;
var b = nouveau nombre (4);
console.log ('a:', typeof a);
console.log ('b:', type de b);
2. Prototype
Le prototype est une propriété d'une fonction. comme:
Copiez le code comme suit: fonction fn () {}
console.log (fn.prototype);
L'attribut prototype est principalement utilisé pour implémenter l'héritage en JavaScript, tels que:
Copiez le code comme suit: Fonction a (nom) {
this.name = name;
}
A.prototype.show = function () {
console.log (this.name);
};
fonction b (name) {
this.name = name;
}
B.Prototype = a.prototype;
var test = new B ('test');
test.show ();
Il y a un problème ici.
Copiez le code comme suit: Console.log (test.Constructor);
En effet, b.prototype = a.prototype a changé le constructeur de B.Prototype en a, vous devez donc restaurer le constructeur de B.Prototype:
Copiez le code comme suit: Fonction a (nom) {
this.name = name;
}
A.prototype.show = function () {
console.log (this.name);
};
fonction b (name) {
this.name = name;
}
B.Prototype = a.prototype;
B.prototype.constructor = b;
var test = new B ('test');
test.show ();
console.log (test.constructeur);
La raison de cela est due au fait que la valeur du prototype est un objet, et sa fonction de constructeur est la fonction où il se trouve, c'est-à-dire:
Copiez le code comme suit: Console.log (a.prototype.Constructor === A);