2016-08-23 63 views
0

这是我的代码:创建Javascript库工作不

(function(window, myObj) { 
    window.onload = myObj.onload; 
})(window, function() { 
    this.onload = function() { 
    console.log('Loading...'); 
    }; 
}); 

但它不工作,当负载页面,没有在Web控制台。来人帮帮我!!!非常感谢!

+0

http://stackoverflow.com/questions/13700273/declaring-a-member-function-in-js – mplungjan

回答

0

让我们分离出功能。

var myFunc = function() { 
    this.onload = function() { 
    console.log('Loading...'); 
    }; 
}; 
(function(window, myObj) { 
    window.onload = myObj.onload; 
})(window, myFunc); 

我们可以看到myFunc没有办法onload我们正在尝试使用上window.onload = myObj.onload

要么我们可以使用

(function(window, myObj) { 
    window.onload = myObj.onload; 
    })(window, new myFunc()); // here myObj.onload will be availabel 

或者,我们可以定义onloadstatic方法在myFunc

var myFunc = function() { 
}; 
myFunc.onload = function() { 
    console.log('Loading...'); 
}; 
(function(window, myObj) { 
    window.onload = myObj.onload; 
})(window, myFunc); 
0

你传入的函数不是一个对象。所以它不会有onload方法。您可以使用new运算符来创建一个对象。

function Fun(){ 
 
    this.onload = function() { 
 
    console.log('Loading....'); 
 
    } 
 
} 
 
(function(window, myObj){ 
 
    window.onload = myObj.onload; 
 
})(window, new Fun());