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