javascript - 在对象作用域内调用变量

标签 javascript

我有一个 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/

相关文章:

javascript - 路由器参数总是在 activate 方法中返回 undefined

javascript - Keystonejs:自定义名称到管理 UI 的默认列

javascript - Ajax成功后如何按下按钮?

javascript - 当我在代码中包含 HighChart 的 3D 图表库时,x 轴、y 轴线不出现

javascript - 从列表中删除记录,Apollo GraphQL Optimistic UI Mutation

javascript - '\n' 从输入字段中删除

javascript - 在 Jest 中使用 test.each 时跳过一些测试

javascript - 如何使用 React refs、回调模式来更新状态

javascript - jQuery 移动对象

javascript - Set-Cookie 添加 2 个 cookie