Heim > Web-Frontend > js-Tutorial > Eine kurze Zusammenfassung des Prototyps und Konstruktors in JavaScript_Grundkenntnisse

Eine kurze Zusammenfassung des Prototyps und Konstruktors in JavaScript_Grundkenntnisse

WBOY
Freigeben: 2016-05-16 16:53:20
Original
1235 Leute haben es durchsucht

1. Konstruktor
Der Wert des Konstruktors ist eine Funktion. In JavaScript haben Werte, Arrays, Funktionen und Objekte anderer Typen als null und undefiniert ein Konstruktorattribut. Der Wert des Konstruktorattributs ist der Konstruktor des Werts, Arrays, der Funktion oder des Objekts. Zum Beispiel:

Code kopieren Der Code lautet wie folgt:
var a = 12, // Number
b = 'str', // String
c = false, // Boolescher Wert
d = [1, 'd', function() { return 5; }], // Array
e = { name: 'e' }, // Object
f = function() { return 'function' }; // Function

console.log('a: ', a.constructor ); / / Number()
console.log('b: ', b.constructor); // String()
console.log('c: ', c.constructor); )
console.log('d: ', d.constructor); // Array()
console.log('e: ', e.constructor); // Object()
console. log(' f: ', f.constructor); // Function()

Die oben genannten Konstruktoren sind alle in JavaScript integriert. Wir können die Konstruktoren auch anpassen, wie zum Beispiel:

Code kopieren Code wie folgt:

function A(name) {
this.name = name;
}

var a = new A('a');

console.log(a.constructor); // A(name)

Wenn Sie den Konstruktor aufrufen, müssen Sie das Schlüsselwort new verwenden. Sie können es sehen, indem Sie sich den folgenden Code ansehen:

Code kopieren Der Code lautet wie folgt:
var a = 4;
var b = new Number(4);

console.log('a : ', typeof a) ; // a: number
console.log('b: ', typeof b); // b: object

2. Prototyp
Prototyp ist ein Attribut einer Funktion. Standardmäßig ist der Wert des Prototypattributs einer Funktion ein leeres Objekt mit demselben Namen wie das Prototypattribut einer anonymen Funktion Objekt. Zum Beispiel:

Code kopieren Der Code lautet wie folgt:
Funktion fn() {}

console .log(fn.prototype); // fn { }
Das

Prototype-Attribut wird hauptsächlich zum Implementieren der Vererbung in JavaScript verwendet, z. B.:

Code kopieren Der Code lautet wie folgt:
function A(name) {
this.name = name;
}

A.prototype.show = function() {
console.log(this. name);
};

function B(name) {
this.name = name;
}

B.prototype = A.prototype;

var test = new B('test');

test.show(); // test

Hier liegt ein Problem vor. Der Konstruktor des Tests ist eigentlich Funktion A und nicht Funktion B:

Code kopieren Der Code lautet wie folgt:
console.log(test.constructor); // A(name)


Das liegt daran, dass B.prototype = A.prototype den Konstruktor von B ändert. Prototyp zu A, daher muss der Konstruktor von B.prototype wiederhergestellt werden:
Code kopieren Der Code lautet wie folgt:
function A( name) {
this.name = name;
}

A.prototype.show = function() {
console.log(this.name) ;
};

Funktion B(name) {
this.name = name;
}

B.prototype = A.prototype;
B. Prototyp.constructor = B;

var test = new B('test');

test.show(); // test
console.log(test.constructor); // B(Name)

Der Grund, warum wir dies tun, liegt darin, dass der Wert des Prototyps ein Objekt ist und sein Konstruktor, d. h. der Wert seines Konstruktorattributs, die Funktion ist, in der es sich befindet, d >

Code kopieren Der Code lautet wie folgt:console.log(A.prototype.constructor === A); // true
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage