我是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
你能告诉我我做错了吗?
感谢。
哦,我的坏。说有些东西很小。遗憾.. !!!
答案 0 :(得分:2)
从原型作业中删除parens:
person.prototype.speak=SaySomething;
您要定义对函数的引用,而不是结果()
答案 1 :(得分:0)
在JavaScript中,重要的是要注意使用函数作为变量,并使用调用函数的结果是非常不同的。
在您的代码中,您将person.prototype.speak
设置为等于调用saysomething()
的结果,这是未定义的(因为它不会返回任何内容)。
您要做的是参考功能本身:
person.prototype.speak=saysomething;
请注意缺少()
。现在它传递对函数的引用,而不是调用它并传入结果。