我已经创建了一个Javascript名称空间,如下所示:
var MyApp = function() {
return {
someFunction : function(x) {}
alert(MyApp.y);
}
}();
这使我可以这样做:
MyApp.someFunction(x);
我希望能够执行以下操作:
MyApp.y = "test"
,以便我的someFunction可以访问此变量Y。关于如何解决这个问题的任何想法?我想保持我的NS语法完整,因此可以与示例代码一起使用的解决方案很好。
最佳答案
您所描述的应该有效。 (除非您遇到语法错误和未使用的参数x
。)
var MyApp = function() {
return {
someFunction : function(x) {
alert(MyApp.y);
}
}
}();
MyApp.y = 'test';
MyApp.someFunction() // alerts 'test'
另一种方法是将外部函数更像构造函数,并将y作为闭包传递:
var MyApp = (function (y) {
return {
y: y,
someFunction: function () {
alert(MyApp.y); // or alert(this.y)
}
}
} ('test'));
MyApp.someFunction(); // alerts 'test'
关于javascript - 如何将变量传递给Javascript命名空间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8521013/