【问题标题】:Create Javascript library not working创建 Javascript 库不起作用
【发布时间】:2016-08-23 13:55:38
【问题描述】:

这是我的代码:

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

但它不起作用,加载页面时,Web 控制台中没有任何内容。来人帮帮我!!!非常感谢!

【问题讨论】:

标签: javascript


【解决方案1】:

让我们分离出函数。

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

正如我们所见,myFunc 没有我们试图在 window.onload = myObj.onload 上使用的方法 onload

我们都可以使用

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-07
      • 1970-01-01
      • 2021-07-07
      • 2012-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多