功能原型不能正常工作

时间:2015-07-16 02:15:10

标签: javascript

我是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 你能告诉我我做错了吗? 感谢。

哦,我的坏。说有些东西很小。遗憾.. !!!

2 个答案:

答案 0 :(得分:2)

从原型作业中删除parens:

person.prototype.speak=SaySomething;

您要定义对函数的引用,而不是结果()

答案 1 :(得分:0)

在JavaScript中,重要的是要注意使用函数作为变量,并使用调用函数的结果是非常不同的。

在您的代码中,您将person.prototype.speak设置为等于调用saysomething()的结果,这是未定义的(因为它不会返回任何内容)。

您要做的是参考功能本身:

person.prototype.speak=saysomething;

请注意缺少()。现在它传递对函数的引用,而不是调用它并传入结果。