简体   繁体   English

创建Javascript库不起作用

[英]Create Javascript library not working

This is my code: 这是我的代码:

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

But it not working, when load page, nothing in web console. 但是它不起作用,当加载页面时,Web控制台中没有任何内容。 Somebody help me!!! 来人帮帮我!!! Thank so much! 非常感谢!

Let's separate out the functions. 让我们分开这些功能。

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

As we can see myFunc don't have method onload which we are trying to use on window.onload = myObj.onload 如我们所见, myFunc没有在window.onload = myObj.onload上尝试使用的方法onload

Either we can use 我们可以使用

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

Or we can have static method for onload defined in myFunc 或者我们可以在myFunc定义staticonload myFunc

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

The function what you pass into is not an object. 您传递的函数不是对象。 So it won't have onload method.You can use the new operator to create a object. 因此它没有onload方法。您可以使用new运算符创建一个对象。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM