我寫了下面的測試代碼,我想obj.my().showTxt()
顯示「test1」,但沒有顯示,我做了什麼錯誤? 謝謝!方法通過原型繼承
<html>
<body>
Primitive and String Objects
<script type="text/javascript">
function Class1() {
this.showTxt = function() { alert(this.name) }
}
Object.prototype.my = Class1;
var obj = new Object();
obj.name = "test1";
obj.my().showTxt();
</script>
</body>
</html>
*「我認爲」* - 認真嗎?嘗試一下[JSFiddle](http://jsfiddle.net)。 – Joseph
'obj.my()'返回'undefined',因爲函數Class1不返回任何值。函數內部'this'將引用'obj'。所以你可以做'obj.my(); obj.showTxt();'。我不太清楚你想要達到什麼效果,整個設置對我來說看起來很奇怪。你能詳細說明一下嗎? –
這一點是錯誤的:'Object.prototype.my = Class1'。它需要是:'Object.prototype.my = new Class1()'。其他一切都不需要改變。 Javascript對象只能從其他對象繼承,而不能從構造函數繼承。記住,JavaScript沒有類! – slebetman