Javascript 在jquery中创建命名空间时出错
我在js文件中写了一段代码Javascript 在jquery中创建命名空间时出错,javascript,jquery,namespaces,Javascript,Jquery,Namespaces,我在js文件中写了一段代码 (function ($) { var $r = $.loadaccess; jQuery.loadaccess.page.user = { init: function () { debugger; var k = 'dd'; alert(k); } }; })(jQuery); var user = jQuery.loadaccess
(function ($) {
var $r = $.loadaccess;
jQuery.loadaccess.page.user = {
init: function () {
debugger;
var k = 'dd';
alert(k);
}
};
})(jQuery);
var user = jQuery.loadaccess.page.user;
我正在.aspx页面上调用它
$(document).ready(function () {
jQuery.loadaccess.page.user.init();
});
但这给我带来了错误
Microsoft JScript运行时错误:无法获取属性“页面”的值:对象为null或未定义
关于这个
jQuery.loadaccess.page.user = {
init: function () {
debugger;
var k = 'dd';
alert(k);
}
};
错误是非常自描述性的,
jQuery.loadaccess
为null或未定义。您希望jQuery.loadaccess是什么?您需要自己创建这个“名称空间”。例如:
jQuery.loadaccess = {
page: {
user: {
init: function () {
debugger;
var k = 'dd';
alert(k);
}
}
}
};
不过,我不建议向jQuery对象添加对象,而是创建自己的顶级名称空间 JQuery.loadaccess.page.user是我的命名空间,Javascript中的“命名空间”只是对象。如果对象不存在,则无法在该对象上创建属性。因此,如果尝试执行'jQuery.loadaccess.something',它将出错,因为'loadaccess'对象不存在。您需要手动创建所有级别的命名空间(包括“loadaccess”对象)。我已经更新了我的答案。