全局命名空间变量?

时间:2012-02-23 07:30:11

标签: javascript jquery namespaces

我正在尝试做类似

的事情
(function( skillet, $, undefined ) {

skillet.global = {

   names: { 

      first: 'abe',
      last: 'watson'

   },
   addresses: {
      home: 'blah'
   }

}

}( window.skillet = window.skillet || {}, jQuery ));

这样我就可以访问

skillet.global.names.first();
skillet.global.address.home();

但我一直都有错误?我怎样才能解决这个问题

2 个答案:

答案 0 :(得分:6)

您正在调用firsthome,就好像它们是函数一样;但您已将它们定义为对象属性。

调用skillet.global.names.first会(如果在警报中)显示abe,如果需要在函数中定义它们,则需要使用正确的函数声明,即

   names: { 
      first: function() {
          return 'abe';
      },
      last: 'watson'
   },
   addresses: {
      home: function() {
          return 'blah';
      }
   }

答案 1 :(得分:3)

skillet.global.names.first();更改为skillet.global.names.first;

skillet.global.address.home();更改为skillet.global.addresses.home;