我已经在这个问题上绞尽脑汁了好几个小时了,现在我已经查看过30个在线教程了。据我所知,我没有做错任何事,但我遇到了问题。我有一些测试代码:
TestPulse = function() {};
TestPulse.prototype.go = function() { alert('You just pulsed'); };
TestPulse.go();
我也尝试过:
function TestPulse() {};
TestPulse.prototype.go = function() { alert('You just pulsed'); };
TestPulse.go();
最后厌倦了,我刚从网上的一些原型和命名空间教程中删除了一些代码,无论我做什么,我都会收到以下错误:
未捕获TypeError:对象函数TestPulse(){}没有方法'go'
就像我说的那样,我不确定我做错了什么......那究竟发生了什么?当我调试时,我确实看到一个原型对象附加到函数,构造函数和所有,所以我知道它在那里。问题在哪里?我不明白原型制作是如何运作的?
答案 0 :(得分:6)
您没有TestPulse的实例...
TestPulse = function() {};
TestPulse.prototype.go = function() { alert('You just pulsed'); };
new TestPulse().go();
答案 1 :(得分:5)
您需要创建TestPulse对象的实例以访问其上的原型方法。
TestPulse = function() {};
TestPulse.prototype.go = function() { alert('You just pulsed'); };
var testPulse = new TestPulse();
testPulse.go();
答案 2 :(得分:2)
尝试
var a = new TestPulse;
a.go();
或
TestPulse.prototype.go();
答案 3 :(得分:1)
TestPulse是你的(比如说)课程。您需要从中创建一个实例。
var myObject = new TestPulse();
myObject.go();
这应该有效。