[英]Function prototype not working properly
我是JS的新手。 我正在閱讀有關原型的書,並且做到了這一點,
function person(first,last)
{
this.firstname = first;
this.lastname = last;
}
function SaySomething()
{
document.write("got it from prototype");
}
person.prototype.speak = saysomething();
var nick=new person('Nick','Thayer');
document.write(nick.speak());
但這是說saysomething is undefined
事情,你能告訴我我做錯了什么嗎? 謝謝。
噢,我的壞。 說東西很小。 抱歉..!!!
從原型分配中刪除括號:
person.prototype.speak=SaySomething;
您想定義對函數的引用,而不是對result()的引用
在JavaScript中,需要注意的是,將函數用作變量與使用調用函數的結果非常不同。
在您的代碼中,您將person.prototype.speak
設置為等於調用saysomething()
的結果,后者是未定義的(因為它不返回任何內容)。
您要做的是參考函數本身:
person.prototype.speak=saysomething;
注意缺少()
。 現在,它傳遞對該函數的引用,而不是調用它並傳遞結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.