这是我创建模块的方式:
var $ = $ || false;
if (typeof jQuery !== 'undefined') {
$ = jQuery;
}
var conversekitTemplates = {
test1: function() {
alert('hello everyone');
},
test2: function() {
$('body').css('background-color', '#fff');
},
test3: 123,
test4: 440,
test5: function() {
var a = apple;
},
test6: 'h1>' + a + '</h1>'; //how to use the value of variable a here?
};
这就是我的称呼方式:
require.config({
paths: {
'jquery': '/media/jui/js/jquery.min',
'templates': '/plugins/system/conversekit/templates'
}
});
require(['jquery', 'templates'], function($) {
$('body').html('helo');
// conversekitTemplates.test1();
console.log(conversekitTemplates.test6);
});
我确实在这里提到:Accessing variables from other functions without using global variables
但我不想特别是将值从一个函数传递给另一个函数。我想让任何想要使用函数值的函数都能调用它。
答案 0 :(得分:0)
我找到了答案,在上面的帖子中我创建了对象文字。这样我认为不能在函数之间共享变量。
现在,我必须制作如下模块模式:
var conversekitTemplates = (function(){
var id = 4;
return {
test1: function(){
alert(id);
},
test2: id+3
};
})();
并像这样访问:
conversekitTemplates.test1();
alert(conversekitTemplates.test2);