Javascript 未定义JS命名空间

Javascript 未定义JS命名空间,javascript,jquery,Javascript,Jquery,这对我来说有点奇怪,为什么它在这个意义上不起作用。我有一个名为 PTN128.操作 它是在全局文件中的应用程序顶层创建的(某些代码因空格而省略): 然后我有一个函数叫做 PTN128.namespace = function () 通过以下方式创建我的名称空间: PTN128.namespace("PTN128.OPERATIONS"); 在我的默认页面中,在尝试调用PTN128.OPERATIONS之前,我定义了PTN128.OPERATIONS(jQuery内容之外)是什么 PTN1

这对我来说有点奇怪,为什么它在这个意义上不起作用。我有一个名为 PTN128.操作

它是在全局文件中的应用程序顶层创建的(某些代码因空格而省略):

然后我有一个函数叫做

PTN128.namespace = function () 
通过以下方式创建我的名称空间:

PTN128.namespace("PTN128.OPERATIONS");
在我的默认页面中,在尝试调用PTN128.OPERATIONS之前,我定义了PTN128.OPERATIONS(jQuery内容之外)是什么

PTN128.OPERATIONS = {}
它有一个函数,叫做

fncInit: function ()
使用jQuery,我通过

(function () {
  PTN128.OPERATIONS.fncInit();
}());
我总是在控制台窗口中看到错误

Uncaught ReferenceError: OPERATIONS is not defined
当我做一个

(function () {
console.log(PTN128.OPERATIONS );
PTN128.OPERATIONS.fncInit();
}());
我看到了带有函数的名称空间操作。当我从控制台窗口中直接调用函数时:

PTN128.OPERATIONS.fncInit();
我也犯了同样的错误

命名空间的所有内容都是在

(function () {}());
我现在有点不知道下一步该怎么办。我看到这篇文章,看着我所做的事情,看起来已经是这样了。如有任何帮助或建议,将不胜感激

谢谢


用于测试目的的额外代码,以查看它

var PTN128 = PTN128 || {};
PTN128.namespace = function () {
var a = arguments, o = null, i, j, d;
for (i = 0; i < a.length; i = i + 1) {
    d = ("" + a[i]).split(".");
    o = PTN128;
    for (j = (d[0] == "PTN128") ? 1 : 0; j < d.length; j = j + 1) {
        o[d[j]] = o[d[j]] || {};
        o = o[d[j]];
    }
}
return o;
}
PTN128.namespace("PTN128.OPERATIONS");
PTN128.OPERATIONS = {
fncInit: function (console.log('test');
};
$(function () {
console.log(PTN128.OPERATIONS);
PTN128.OPERATIONS.fncInit();
}());
var PTN128=PTN128 | |{};
PTN128.namespace=函数(){
变量a=参数,o=null,i,j,d;
对于(i=0;i
请同时执行
console.log(PTN128.OPERATIONS.fncInit)
执行console.log(PTN128.OPERATIONS.fncInit)显示函数。另外,将console.log('test');放在fncInit中不会运行。您的
(函数(){}());
没有使用jQuery?您的意思是
$(函数(){})
?看起来您是在分配
PTN128.OPERATIONS
对象之前执行此操作的。您编辑了一组有趣的上下文,这使得很难看到发生了什么。语法错误修复后,它可以在这里工作:但您不需要在这里过任何生活
var PTN128 = PTN128 || {};
PTN128.namespace = function () {
var a = arguments, o = null, i, j, d;
for (i = 0; i < a.length; i = i + 1) {
    d = ("" + a[i]).split(".");
    o = PTN128;
    for (j = (d[0] == "PTN128") ? 1 : 0; j < d.length; j = j + 1) {
        o[d[j]] = o[d[j]] || {};
        o = o[d[j]];
    }
}
return o;
}
PTN128.namespace("PTN128.OPERATIONS");
PTN128.OPERATIONS = {
fncInit: function (console.log('test');
};
$(function () {
console.log(PTN128.OPERATIONS);
PTN128.OPERATIONS.fncInit();
}());