【问题标题】:Calling a function from an attempt to create a namespace and namespace is 'undefined'从尝试创建命名空间和命名空间调用函数是“未定义的”
【发布时间】:2016-10-28 19:39:20
【问题描述】:

我正在研究如何在 Jquery 中创建命名空间并创建一种可以在 C# 中创建的类,我阅读了这个 article 并在一个单独的 JS 文件中提出了这个

var GlobalScript = {
    myStuff: function(){
        alert("hi");
    }
}

我已经尝试在另一个外部文件中调用这样的函数..

$("#btnSave").click(function(){
    GlobalScript.myStuff();
});

当它被调用时,我收到一个错误,说它未定义,我做错了什么?

【问题讨论】:

  • 工作正常:Demo
  • @aldanux,我发现它在同一个区域时有效,但代码在单独的文件中。
  • 我猜你有hoisting问题
  • @RachelGallen,我现在一切正常
  • @RachelGallen,非常感谢您的支持。发生的事情是我在全局脚本中有一些错误的代码,一旦我删除它,一切都开始正常工作

标签: jquery namespaces


【解决方案1】:

试试这个。将以下代码放入您的外部文件中

function GlobalScript() {

    this.myStuff = function() {
       alert('hi');
    }
}

然后把它放在你的 onclick 中

var my_obj = new GlobalScript();
my_obj.myStuff(); // should hopefully alert "hi"!

【讨论】:

  • 我仍然认为 GlobalScript 未定义
【解决方案2】:

一切看起来都很好。你确定你正确地包含了单独的文件吗?

【讨论】:

    最近更新 更多