关于JavaScript中call()和apply() 的一些理解
关于JavaScript中call()和apply() 的一些理解
call()方法和apply()方法,在上层应用中用的不是很多,但在底层写JS框架的时候却常常看到。然后度娘谷哥一番,也发现好多达人写出了自己的理解和笔记,但始终还是云里雾里,于是去W3C学习了下
在W3C网上研究这两个方法的时候,看到一个词语,叫“对象冒充”,这个概念本人觉得还是挺重要的,让我对这两个方法理解起来更加直观。
call()方法,看下官方给出的例子
function sayColor(sPrefix,sSuffix) { alert(sPrefix + r + sSuffix);};var obj = new Object();r = "blue";(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 + r + sSuffix);};var obj = new Object();r = "blue";y(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是利用数组,在数组中一一对应
-
万恶的function在javascript中的运用实例分析
javascript中最有特色而又让你困惑的function算一个了下面看一下常用操作复制代码代码如下:functiondoit(){.....}doit();javascript中的函数我们可以把它当作方法使用复制代码代码如下:varobj=newObject();=function(){.....}();而function实际上就是对象(即F...
-
网页设计10大灵感来源介绍
不仅仅只有网页设计能激发我们创建出色网站的动力,几乎我们身边的任何事都会有此作用。以下是本站小编搜索整理的关于网页设计10大灵感来源介绍,供参考借鉴,希望对大家有所帮助!想了解更多相关信息请持续关注我们应届毕业生考试网!自然图01图02思考设计的最佳场所...
-
高级PHP开发工程师岗位职责7篇
现如今,很多地方都会使用到岗位职责,岗位职责具有提高内部竞争活力,更好地发现和使用人才的作用。想学习制定岗位职责却不知道该请教谁?以下是小编整理的高级PHP开发工程师岗位职责,仅供参考,希望能够帮助到大家。高级PHP开发工程师岗位职责1工作职责:1、承担机器学习...
-
如何理解Javascript的caller,callee,call,apply区别
在提到上述的概念之前,首先想说说javascript中函数的隐含参数:argumentsarguments该对象代表正在执行的函数和调用它的函数的参数。[function.]arguments[n]参数function:选项。当前正在执行的Function对象的名字。n:选项。要传递给Function对象的从0开始的参数值...
相关文章
- 如何理解Javascript的caller,callee,call,apply区别
- 如何理解Javascript的caller,callee,call,apply区别
- 关于javascript中apply()和call()方法的区别
- 如何理解Javascript的caller,callee,call,apply区别
- 如何理解Javascript的caller,callee,call,apply区别
- 如何理解Javascript的caller,callee,call,apply区别
- 如何理解Javascript的caller,callee,call,apply区别
- 如何理解Javascript的caller,callee,call,apply区别
- 如何理解Javascript的caller,callee,call,apply区别
- 如何理解Javascript的caller,callee,call,apply区别