簡體   English   中英

函數原型無法正常工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM