功能没有我的方法可用

时间:2011-10-07 13:36:41

标签: javascript google-chrome

我已经在这个问题上绞尽脑汁了好几个小时了,现在我已经查看过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'

就像我说的那样,我不确定我做错了什么......那究竟发生了什么?当我调试时,我确实看到一个原型对象附加到函数,构造函数和所有,所以我知道它在那里。问题在哪里?我不明白原型制作是如何运作的?

4 个答案:

答案 0 :(得分:6)

您没有TestPulse的实例...

TestPulse = function() {};
TestPulse.prototype.go = function() { alert('You just pulsed'); };
new TestPulse().go();

http://jsfiddle.net/HYWPk/

答案 1 :(得分:5)

您需要创建TestPulse对象的实例以访问其上的原型方法。

TestPulse = function() {};
TestPulse.prototype.go = function() { alert('You just pulsed'); };
var testPulse = new TestPulse();
testPulse.go();

http://jsfiddle.net/H2dnv/

答案 2 :(得分:2)

尝试

var a = new TestPulse;
a.go();

TestPulse.prototype.go();

答案 3 :(得分:1)

TestPulse是你的(比如说)课程。您需要从中创建一个实例。

var myObject = new TestPulse();
myObject.go();

这应该有效。