当你这样做时,fx = window.fx;
你正在覆盖fx
匿名函数的本地范围内的 which 。如果你想在全局范围之外访问它,你需要做
window.fx = fx;
. 似乎你想在加载时调用函数pop
,而不是在加载时注册,这就是你在这里尝试做的window.onload = fx.pop('hi');
这将立即调用pop
并将方法的结果设置为load
事件的回调(这是未定义的,因为你的方法没有' t 返回任何东西;除非该方法返回另一个需要在加载后调用的函数,否则将变得无用)。相反,您可能想尝试这种方式。
window.onload = fx.pop.bind(this, 'hi'); //Now this will get invoked only after load event is completed, it bind the current context to the function pop with the argument `hi`
或者
window.onload = function(){
fx.pop('hi'); //Now this gets invoked only after load event is completed
};
所以你可以试试:
(function(){
var fx ={
pop : function(msg){
alert(msg);
}
};
window.fx = fx;
})();
window.onload = function(){
fx.pop('hi')
};