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