【发布时间】:2014-11-02 03:26:31
【问题描述】:
Please check this link for my complete code (It's simple though)
问题 1:JavaScript 中定义的命名空间是什么?根据我的理解,看起来任何对象都可以是命名空间?
假设我们有一个名为'SPA'的命名空间,意思是“简单页面应用程序”,在这个命名空间内,我定义了四个模块范围变量,$chatSlider、$toggleSlider、$onclickSlider、initModule;
var spa = (function( $ ) {
// Module scope variables
var
// Set constants
configMap = {
// some code here
},
// Declare all other module scope variables
$chatSlider, toggleSlider, onClickSlider, initModule;
toggleSlider = function() {
// some code here
}
// do not take action if slider is in transition
return false;
}
onClickSlider = function(event) {
toggleSlider();
return false;
}
// Public method / initModule/
// sets initial state and provides feature
initModule = function($container) {
// some code here
return true;
};
return {
initModule: initModule
};
})(jQuery);
现在我想在“spa”之外调用initModule,像这样
$(document).ready(function () {
spa.initModule( $('#spa'));
});
问题2:为什么要写
return {
initModule: initModule
};
在我看来,return {initModule} 似乎更有意义,上面的代码是什么意思,它的语法是什么?
最后但并非最不重要的一点是,我通常以
之类的格式编写函数function ( $var) {
// function code here
}
那么这里的$和jQuery是什么意思
function( $ ) {
}(jQuery)
【问题讨论】:
-
“对我来说,返回 {initModule} 似乎更有意义” 你可能会很高兴听到 ES6 将引入短对象表示法,其中
{initModule}相当于 @ 987654328@.
标签: javascript jquery node.js namespaces single-page-application