创建全局API对象
问题描述:
我在java脚本中使用模块通过匿名函数模式来具有体现整个模块的匿名函数,并通过设置全局属性来公开特定的公共API部分。创建全局API对象
我尝试设置这样一个全球性质,第二个贴在下面的几种方法失败:
window.foo = (function() {
function bar() { this.hello = "world" }
return new bar();
})();
> foo.hello
"world" // OK
与
(function() {
window.foo2 = new bar(this.hello = "world");
function bar() {}
})();
> foo2.hello
undefined // Fail
为什么第二种方法不是建立一个正确的酒吧对象?
答
的代码的问题是使用构造的对象的方式。试试这两种方法。
window.foo2 = new bar();
function bar() {this.hello = "world";};
或
window.foo2 = new bar("world");
function bar(x) {this.hello = x;};
+0
在第二种情况下,单词“World”存储在window.hello – 2013-03-13 07:53:40
超出范围,则应该从返回块返回的对象。 – 2013-03-13 07:41:19
'新酒吧(this.hello =“world”)'看起来很奇怪。 – pktangyue 2013-03-13 07:43:28
pktangyue,是的,首先会喝点咖啡...对不对 – hotzen 2013-03-13 07:51:57