Javascript 全局名称空间变量?
我正在尝试做一些类似的事情Javascript 全局名称空间变量?,javascript,jquery,namespaces,Javascript,Jquery,Namespaces,我正在尝试做一些类似的事情 (function( skillet, $, undefined ) { skillet.global = { names: { first: 'abe', last: 'watson' }, addresses: { home: 'blah' } } }( window.skillet = window.skillet || {}, jQuery )); 这样我就可以像 skillet.gl
(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();
但我总是出错?我如何着手修复此问题您首先调用的是
和主页
,就好像它们是函数一样;但您已经将它们定义为对象属性
调用skillet.global.names.first
将显示abe
,如果需要在函数中定义它们,则需要使用正确的函数声明,即
names: {
first: function() {
return 'abe';
},
last: 'watson'
},
addresses: {
home: function() {
return 'blah';
}
}
更改skillet.global.names.first()代码>至skillet.global.names.first代码>
更改skillet.global.address.home()代码>至skillet.global.addresses.home代码>first和home不是方法……”……但您已经将它们定义为对象类型“不,他将它们定义为对象属性。字符串,在本例中为。他在一个地方使用了地址
,但在另一个地方使用了地址
。感谢您的回复。所以我应该使用skillet.global.names.first代码>即,我不想将它们用作函数,而是用作变量?我该如何构造它,以便将它们定义为变量?@T.J.Crowder,updated,Andy,通过不附加额外的()
,将其转换为函数调用。@Andy:epoch的回答说明了如何使它们变为函数。(无论如何,只有一种方式)哈哈,是的,我的错误是:P.仍然在学习名称空间,所以对它的工作原理有点困惑:)谢谢