Javascript - 未捕获TypeError:对象没有方法

时间:2013-09-27 14:30:52

标签: javascript

我有这个方法:

var stopwatch = function () {
    this.start = function () {
        (...)
    };

    this.stop = function() {
        (...)
    };
};

当我尝试调用它时:

stopwatch.start();

我得到了Uncaught TypeError: Object (here is my function) has no method 'start'。我做错了什么?

4 个答案:

答案 0 :(得分:3)

当您运行this.start函数并且从不运行该函数时,您正在为this.stopstopwatch 分配函数。

看起来你想要一个带有一些原型的构造函数。

// By convention, constructor functions have names beginning with a capital letter
function Stopwatch () {
    /* initialisation time logic */
}

Stopwatch.prototype.stop = function () { };
Stopwatch.prototype.start = function () { };

// Create an instance
var my_stopwatch = new Stopwatch();
my_stopwatch.start();

答案 1 :(得分:1)

为什么不做new stopwatch().start()

答案 2 :(得分:1)

您需要像这样调用启动函数,

var obj = new stopwatch();
obj.start();

您可以创建该方法的实例并访问启动功能。

答案 3 :(得分:1)

您需要先创建一个新对象,然后才能调用它上面的函数:

var stopwatch = function () {
    this.start = function () {
        console.log('test');
    };

    this.stop = function () {

    };
};

var s = new stopwatch();
s.start();

http://jsfiddle.net/9EWGK/