0

我以未确定的顺序加载了我的 javascript。我有一个命名空间函数来注册命名空间。例如,可以这样写:

"com.stackoverflow.question".namespace(new function() {
    this.sayHelloTo = function(text) { alert("Hello" + text); }
});

不幸的namespace.js是,并不总是首先加载,因为加载顺序是随机的,但其他脚本使用命名空间函数。有没有办法在不出现错误“ .namespace”不是函数的情况下实现这一点?

所以sayHelloTo以后一定有办法初始化定义,我有一个 Everything is loaded 事件。所以即将发表的声明有效,但我认为它非常难看。

var postInit = postInit || [];
postInit.push(function() {
  "com.foo.bar".namespace(new function() {
      this.sayHelloTo = function(text) { alert(text); }
  });
}); 

当事件发生时:

list.foreach(function(k, v) { v.call();  });  

有没有更好的方法来实现这一目标?

4

1 回答 1

1

使用 AMD:查看http://requirejs.org/。或者 common.js 可能会根据使用情况起作用。

于 2012-10-10T13:30:39.557 回答