我有一个 JS 文件,其中包含此对象设置数量的其他对象。
if (!me) var me = {};
me.page = {
initialize:function( options ) {
var settings = $.extend({
error_module: $('#error-module'),
mainForm: $('form')
}, options);
},
pagemaker:function(){
var temp = settings.error_module
}
}
me.bla = {
// the scope of bla
}
如果我调用 me.page.pagemaker() 它找不到设置变量。我不想将设置设置为全局,我希望它位于对象页面的范围内。 我怎样才能完成这项工作,以便 var temp = settings.error_module 不是未定义的。
最佳答案
您可以使用 IIFE(立即调用函数表达式)。看看这是否有帮助。我根据我认为的最佳实践稍微修改了您的代码:
var me = me || (function(){
var settings = {
errorModule: '#error-module',
mainForm: 'form'
};
return {
page: {
init: function(options) {
$.extend(settings, options);
},
pageMaker: function() {
var temp = $(settings.errorModule);
}
},
bla: function() {
}
};
}());
编辑:错过了外部对象。
关于javascript - 在对象作用域内调用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20984326/