为什么即使我没有调用它,这个javascript方法也会触发?

时间:2010-11-10 08:42:52

标签: javascript

只是试图了解Javascript,发生了一件非常奇怪的事情。方法getChapters()正在解雇,即使我没有明确地称它...任何想法? (我正在获取章节的警告框。)

videoChapters = function () {
};

videoChapters.prototype.config = {
    jsonProvider : '_Chapters.aspx'
};

videoChapters.prototype.init = function () {
    //get chapters
};

videoChapters.prototype.getChapters = new function () {
    alert('getting chapters');
}

jQuery(document).ready(function () {
    videoChapters = new videoChapters();
    videoChapters.init();
});

3 个答案:

答案 0 :(得分:3)

这一行:

videoChapters.prototype.getChapters = new function () {

......应该不包含“新”这个词。当Javascript尝试计算表达式时,它会将函数的结果传递给“new”运算符。

答案 1 :(得分:2)

删除new关键字:

videoChapters.prototype.getChapters = function () {
    alert('getting chapters');
}

答案 2 :(得分:1)

....prototype.getChapters = new function () {
                            ^-------- See the new keyword here?

删除new关键字,一切都将按预期工作,使用new将调用该函数作为构造函数并返回它的新实例,在这种情况下是匿名函数的新实例。