prototype屬性主要用來實現JavaScript中的繼承,如:
複製程式碼
程式碼如下:
程式碼如下:function A(name) {
this.name = name;
}
A.prototype.show = function() {
console.log(this.name);};
function B(name) {
this.name = name;
這兒有一個問題,test的建構子其實是A函式而不是B函式:
console.log(test.constructor); // A(name)
這是因為B.prototype = A.prototype把B.prototype的建構子改成了A,所以需要還原B.prototype的建構子:
複製程式碼
程式碼如下:
function A( name) {
this.name = name;
}
A.prototype.show = function() {
console.log(this.name);
;
}; 🎜>
function B(name) { this.name = name;
}
之所以要這麼做,是因為prototype的值是一個對象,且它的構造函數也就是它的constructor屬性的值就是它所在的函數,即:
複製程式碼 程式碼如下:console.log(A.prototype.constructor === A); // true