JavaScript中call()和apply() 的一些理解

时间:2020-11-11 16:31:55 JavaScript 我要投稿

关于JavaScript中call()和apply() 的一些理解

  关于JavaScript中call()和apply() 的一些理解

  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() 的一些理解】相关文章:

1.Javascript的call、apply的理解

2.关于javascript中apply()和call()方法的区别

3.如何理解JavaScript的caller,callee,call,apply

4.如何理解Javascript的caller,callee,call,apply区别

5.Javascript中call与apply的学习笔记示例

6.关于深入理解JavaScript中的箭头函数

7.关于深入理解JavaScript中的对象的介绍

8.如何灵活的理解JavaScript中的this指向