这个简单的Javascript有什么问题?

时间:2016-10-16 17:14:35

标签: javascript jquery

window['TestPlugin'] = function(){
    var helloWorld = function(){
        alert('hello world');
    }
}

我尝试将其称为:

$(document).ready(function () {
    TestPlugin.hellowWorld();
}

但我明白了:

  

TestPlugin.hellowWorld不是函数

2 个答案:

答案 0 :(得分:4)

helloWorld是:

  • 在您调用TestPlugin函数
  • 之前未定义
  • 函数内部的局部变量,而不是函数对象的属性

要使它成为属性,您需要将其定义为:

window['TestPlugin'] = function(){};
window.TestPlugin.helloWorld = function(){
    alert('hello world');
}

但是由于TestPlugin没有做任何事情,因此它成为一个函数并没有多大意义,所以你可能只是:

window['TestPlugin'] = {
    helloWorld: function(){
        alert('hello world');
    }
};

你打电话时也需要正确拼写。

答案 1 :(得分:0)

除了[假设]错字之外 - 答案是:范围

helloWorld是私有到TestPlugin,因此在该范围之外不可见。

一种可能的方法是:

window['TestPlugin'] = function(){
    this.helloWorld = function(){
        alert('hello world');
    }
    return this;
}

TestPlugin().helloWorld()