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


Posted in Javascript onMay 20, 2016

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 相关文章推荐
Jquery 点击按钮显示和隐藏层的代码
Jul 25 Javascript
UpdatePanel和Jquery冲突的解决方法
Apr 01 Javascript
浅谈JavaScript函数节流
Dec 09 Javascript
ECMAScript中函数function类型
Jun 03 Javascript
node.js插件nodeclipse安装图文教程
Oct 19 Javascript
JS中检测数据类型的几种方式及优缺点小结
Dec 12 Javascript
Angularjs实现分页和分页算法的示例代码
Dec 23 Javascript
jQuery基于闭包实现的显示与隐藏div功能示例
Jun 09 jQuery
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
Sep 19 Javascript
微信小程序云开发如何使用npm安装依赖
May 18 Javascript
Node.js创建一个Express服务的方法详解
Jan 06 Javascript
ES6中的Javascript解构的实现
Oct 30 Javascript
Bootstrap表格和栅格分页实例详解
May 20 #Javascript
JavaScript 数组some()和filter()的用法及区别
May 20 #Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
May 20 #Javascript
AngularJS中的指令全面解析(必看)
May 20 #Javascript
浅析angularJS中的ui-router和ng-grid模块
May 20 #Javascript
javascript的理解及经典案例分析
May 20 #Javascript
JS中对象与字符串的互相转换详解
May 20 #Javascript
You might like
模仿OSO的论坛(五)
2006/10/09 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
PHP实现动态添加XML中数据的方法
2018/03/30 PHP
在IE模态窗口中自由查看HTML源码的方法
2007/03/08 Javascript
JavaScript的document对象和window对象详解
2010/12/30 Javascript
js用Date对象处理时间实现思路及代码
2013/01/31 Javascript
JQuery实现鼠标滑过显示导航下拉列表
2013/09/12 Javascript
js的image onload事件使用遇到的问题
2014/07/15 Javascript
JS原型对象的创建方法详解
2016/06/16 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
Javascript Function.prototype.bind详细分析
2016/12/29 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
基于JS实现html中placeholder属性提示文字效果示例
2018/04/19 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
2019/01/27 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
简单学习5种处理Vue.js异常的方法
2019/06/17 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
python通过正则查找微博@(at)用户的方法
2015/03/13 Python
Python中文件的读取和写入操作
2018/04/27 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
python opencv将图片转为灰度图的方法示例
2019/07/31 Python
Python编写单元测试代码实例
2020/09/10 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
印度在线杂货店:bigbasket
2018/08/23 全球购物
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
Hush Puppies澳大利亚官网:舒适的男女休闲和正装鞋
2019/08/24 全球购物
文员自我评价怎么写
2013/09/19 职场文书
应届大学生求职的自我评价
2013/11/17 职场文书
法学函授自我鉴定
2014/02/06 职场文书
家长对老师的评语
2014/04/18 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
优秀共产党员事迹材料
2014/12/18 职场文书
2015年党员个人工作总结
2015/05/13 职场文书
年会邀请函的格式及范文五篇
2019/11/02 职场文书