2
A
回答
2
定義
function.prototype.call(this,arg1,arg2,...);
因此,當您撥打func.call
時,您傳遞的第一個參數將綁定到this
變量。因此,在函數func
中,任何this
變量將被您的第一個參數替換爲1
。
要發揮進一步
可以擴展多個參數func
,並進一步論證打電話,看看發生什麼事:
function func(a,b){
alert(this + a*b);
}
func.call(1,2,3);
召回的定義,第一個參數或func.call
指this
變量func
。所以,你最終會運行
alert(1 + 2*3);
**號:** https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call
**甚至進一步閱讀**
function.prototype.call
還有一個親兄妹是function.prototype.apply
。這兩個函數的第一個參數是指this
變量。唯一的區別是function.prototype.apply
接受數組中這樣的函數的參數。
所以不是
func.call(1,2,3);
您將
func.apply(1,[2,3]);
有它的樂趣玩電話了!
1
由於call
的第一個參數是函數this
值,語法是
function.call(thisArg[, arg1[, arg2[, ...]]])
作爲MDN
含義無論是作爲第一傳遞注意到參數call
將爲this
調用的函數
function func(){
alert(this)
}
func.call("test"); // alerts "test"
要傳遞的參數裏面,你傳遞一個this
值,然後自變量的其餘部分將沿着該功能
function func(arg1, arg2, arg3){
alert(this); // alerts "this_value"
alert(arg2); // alerts "kitty"
}
func.call("this_value", "hello", "kitty", "cat");
apply
傳遞的參數的工作方式相同,但取而代之的是一系列參數
func.apply("this_value", ["hello", "kitty", "cat"]);
相關問題
- 1. JavaScript調用()方法
- 2. JavaScript方法調用
- 3. 無法調用Javascript方法
- 4. 從java方法調用javaScript
- 5. JavaScript調用類方法
- 6. 從javascript調用jquery方法
- 7. 從UIWebView調用javascript方法
- 8. 調用Javascript工廠方法
- 9. 從javascript調用serverside方法
- 10. JavaScript調用類方法
- 11. 從Java調用JavaScript方法
- 12. 從JavaScript調用PHP方法
- 13. 從javascript調用JSP方法
- 14. 從javascript調用aspx.cs方法
- 15. javascript函數調用方法
- 16. 從javascript調用actionscript方法
- 17. javascript調用特權方法
- 18. 從iframe調用javascript方法
- 19. 從javascript調用applet方法
- 20. 從javascript調用actionscript2.0方法
- 21. 無法調用Javascript對象方法
- 22. Javascript錯誤 - 無法調用方法'appendChild'null
- 23. JavaScript調用對象語法的方法
- 24. 無法從JavaScript調用Delphi ActiveX方法
- 25. 如何從Javascript回調方法調用Typscript方法 - Angular2
- 26. 使用JavaScript調用C#方法
- 27. 使用javascript調用get方法
- 28. 使用調用方法的javascript concat
- 29. 用JavaScript調用Ajax WebMethod方法
- 30. 使用javascript調用bean方法
'MDN'是你的朋友:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call – Adam