2011-08-04 24 views
1

這是我的代碼:在JavaScript中的原型繼承,它是如何工作的?

var Quo = function(string) {   //This creates an object with a 'status' property. 
    this.status = string; 
}; 
Quo.get_status = function() { 
    return this.status; 
} 
Quo.get_status = function() { 
    return this.status; 
} 

var myQuo = new Quo("confused");  //the `new` statement creates an instance of Quo(). 

document.write(myQuo.get_status());  //Why doesnt the get_status() method attach to the new instance of Quo? 

當我運行這段代碼的結果是[object Object]。我的問題一個實例繼承了一個構造函數的屬性?

回答

2

我的問題一個實例繼承了什麼構造函數的屬性?

Quo.prototype中的任何內容都可用於實例。

此代碼應該讓你的工作例如:

Quo.prototype.get_status = function() { 
    return this.status; 
}; 

Quo.prototype.get_status = function() { 
    return this.status; 
}; 

延伸閱讀:

+0

@馬特 - 都包含在原型對象的屬性是什麼默認? – dopatraman

+0

@codeninja - 這是一個鏈。默認情況下,你擁有'Object.prototype'的所有內容,但是可以從其他的「擴展」。看一看我連接 – Matt

+0

@ Matt的MDC文章 - 所以當創建Quo時,Quo.prototype是空的?還是它包含了Quo的屬性? 注意:我還沒有看過MDN文章。 – dopatraman