有关JavaScript中call()和apply() 的一些理解
程序员文章站
2023-11-26 12:20:28
call()方法和apply()方法,在上层应用中用的不是很多,但在底层写js框架的时候却常常看到。然后度娘谷哥一番,也发现好多达人写出了自己的理解和笔记,但始终还是云里雾...
call()方法和apply()方法,在上层应用中用的不是很多,但在底层写js框架的时候却常常看到。然后度娘谷哥一番,也发现好多达人写出了自己的理解和笔记,但始终还是云里雾里,于是去w3c学习了下
在w3c网上研究这两个方法的时候,看到一个词语,叫“对象冒充”,这个概念本人觉得还是挺重要的,让我对这两个方法理解起来更加直观。
call()方法,看下官方给出的例子
function saycolor(sprefix,ssuffix) { alert(sprefix + this.color + ssuffix); }; var obj = new object(); obj.color = "blue"; saycolor.call(obj, "the color is ", "a very nice color indeed.");
最后输出的结果是“the color is blue, a very nice color indeed.”
call()方法就是将第一个参数替换方法中的this,然后后面的参数传入该方法使用
apply()方法,同样先看个官方给出的例子
function saycolor(sprefix,ssuffix) { alert(sprefix + this.color + ssuffix); }; var obj = new object(); obj.color = "blue"; saycolor.apply(obj, new array("the color is ", "a very nice color indeed."));
最后输出的结果仍然是“the color is blue, a very nice color indeed.”
其实call()方法和apply()方法可以粗略的认为是差不多的,第一个参数都是替换方法中this关键字,只是后面传给方法的传参方式不同,call是直接对应,apply是利用数组,在数组中一一对应
以上这篇有关javascript中call()和apply() 的一些理解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
推荐阅读
-
浅谈JavaScript中的apply/call/bind和this的使用
-
深入理解JavaScript 中的执行上下文和执行栈
-
JavaScript中的call和apply的用途以及区别
-
有关JavaScript中call()和apply() 的一些理解
-
JavaScript中的this,call,apply使用及区别详解
-
js中call()和apply()改变指针问题的讲解
-
javascript中apply、call和bind的使用区别
-
javascript基于原型链的继承及call和apply函数用法分析
-
深入理解Javascript中的作用域链和闭包
-
对squid中refresh_pattern的一些理解和建议