0
A
回答
3
你不避免的事件對象。你擁抱他們。這就是說,如果你不想使用它,你不必使用它。當瀏覽器在onload
事件中觸發時,無論您是否請求,它都會將事件對象傳遞給處理程序。正如您所指出的那樣,即使您沒有在處理程序參數中專門爲其提供名稱,它也存在於arguments
陣列中。
正如其他人在這裏他們的答案和評論所指出的那樣,你可以添加另一個匿名函數被引發該事件進一步去除你的響應代碼,但我個人覺得這很不必要的。
由於@Yoshi在上面的評論中指出的,下面將工作:
img.onload = function() {
fn.call(this)
};
這將調用您的fn
方法傳入當前的上下文this
參考。再一次,我個人會避免觸摸事件對象,因爲這種類型的代碼可能會在離現在六週的時候讓別人和你自己感到困惑。
0
除了喬納森·桑普森的答案,一個簡單的解決方法可以像這樣
img.onload = function() {
fn();
}
這樣做,arguments
是空
看到小提琴(使用JavaScript控制檯):http://jsfiddle.net/ZxSEX/
相關問題
- 1. PropertyNotWritableException時做FN:長度
- 2. 使用編號爲FN ::子內在函數的第一個參數
- 3. 多個參數的`some-fn`的變體
- 4. MySQL的Decimal函數的第一個參數是做什麼的?
- 5. 如何使用標誌或克隆()沒有第一個參數fn調用fork()?
- 6. fn.apply(fn,[])做什麼?
- 7. 「type」的第一個參數是做什麼的?
- 8. app.post的第一個字符串參數是做什麼的?
- 9. cffunction:基於第一個參數的第二個參數
- 10. JavaScript語法(0,FN)(參數)
- 11. 我可以做一個lambda參數嗎?
- 12. 第一個參數在ssrs中的第一個參數初始選擇後不會刷新第二個參數
- 13. angularjs指令參數「FN」不是一個函數
- 14. 返回調用其第一個參數的函數
- 15. datatables選擇第一行onload
- 16. image onload只改變第一個網址
- 17. 根據第一個參數禁用/忽略第二個參數
- 18. gtk_drawing_area_size第一個參數
- 19. 添加新的第一個參數,然後將原來的參數
- 20. 根據第一個參數
- 21. sqlite3_bind_xxxx,sqlite3_column_xxxx - 第一個參數
- 22. Keras LSTM:第一個參數
- 23. 第一個URL參數與
- 24. fgets函數的第一個參數
- 25. 哪一個是@PostConstruct或onload的第一個?
- 26. 第一個參數的MySQLi函數
- 27. 差異FN(字符串參數... args)與FN(字串[] args)
- 28. 如何做出正確的FN ARGS當創建FN使用宏
- 29. 的.htaccess規則 - 第一個相同第一個參數
- 30. 「if(fn)fn()」或「fn && fn()」
不太清楚我...在哪裏以及如何定義'fn'? – fcalderan 2012-04-19 16:14:17
'img.onload =函數(){fn.call(本)};' – Yoshi 2012-04-19 16:16:03
爲什麼不能簡單地忽略這樣的說法?你沒有明確地通過一個論點,所以大概你不希望使用一個論點。該函數傳遞觸發它的事件,這在某些情況下可能很有用。如果你不需要它,不要使用它。 – 2012-04-19 16:16:14