原创作品,转载需得到原作者书面许可,同时保留原作者和出处,否则将追究法律责任。
call方法可以改变其他方法(函数)的调用对象,方法内的this也会指向新的调用对象。
此方法与apply方法功能类似,具体参阅JavaScript apply()一章节。
特别说明:apply对箭头函数无效。
语法结构:
[JavaScript] 纯文本查看 复制代码fn.call(thisobj,arg1,arg2,...)
参数解析:
(1).fn:要被改变调用对象的方法或者函数。
(2).thisobj:必需,fn的新调用对象,fn中的this将会指向此对象。
(3).arg:可选,传递给fn的参数。
浏览器支持:
(1).IE浏览器支持此方法。
(2).edge浏览器支持此方法。
(3).谷歌浏览器支持此方法。
(4).opera浏览器支持此方法。
(5).火狐浏览器支持此方法。
(6).safria浏览器支持此方法。
代码实例:
[JavaScript] 纯文本查看 复制代码运行代码var obj={ webName:"蚂蚁部落" } var webName="baidu"; function fn(){ console.log(this.webName); } fn(); fn.call(obj)
代码运行效果截图如下:
代码分析如下:
(1).默认状态下,调用fn函数,函数中的this指向window对象,所以打印结果为"baidu"。
(2).通过call方法将fn的调用对象修改obj,那么fn中的this也就指向obj,于是打印结果为"蚂蚁部落"。
[JavaScript] 纯文本查看 复制代码运行代码var obj = { webName:"蚂蚁部落" } function fn(x,y){ console.log(this.webName); console.log(x + y) } fn.call(obj, 2, 3);
代码运行效果截图如下:
代码分析如下:
(1).通过call方法将fn函数的调用对象修改obj,那么fn中this指向obj。
(2).call方法从第二个参数开始的所有参数都是为fn传递的参数,也就是将参数2和3传递给fn。
前端教程
HTML5 API
鲁ICP备10022556号-3
鲁公网安备 37021302000666号
关于我们
|手机版|小黑屋|
Copyright © 2012-2020 Design: 蚂蚁部落
最新评论