我以未确定的顺序加载我的javascript。我有一个名称空间函数来注册名称空间。例如,可以这样写:
"com.stackoverflow.question".namespace(new function() {
this.sayHelloTo = function(text) { alert("Hello" + text); }
});
不幸的是,namespace.js
并不总是首先加载,因为加载顺序是随机的,但其他脚本使用命名空间函数。有没有办法实现这一点而不会得到错误“.namespace
”不是一个函数?
所以必须有一种方法可以在以后初始化sayHelloTo
定义,我有一个加载的事件。所以即将发表的声明有效,但我认为这非常难看。
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(); });
有没有更好的方法来实现这一目标?