您现在的位置:首页 >> 前端 >> 内容

前端技能练习:call和apply

时间:2017/2/25 12:01:44 点击:

  核心提示:call()方法和apply()方法,在上层应用中用的不是很多,但在底层写JS框架的时候却常常看到。在W3C网上研究这两个方法的时候,看到一个词语,叫对象冒充,这个概念本人觉得还是挺重要的,让我对这两...

call()方法和apply()方法,在上层应用中用的不是很多,但在底层写JS框架的时候却常常看到。

在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."));

其实call()方法和apply()方法可以粗略的认为是差不多的,第一个参数都是替换方法中this关键字,只是后面传给方法的传参方式不同,call是直接对应,apply是利用数组,在数组中一一对应

作者:网络 来源:skyxmstar的