2016-08-23 59 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());