×

改变this指向"二人组":apply()和call()

作者:andy0012020.07.13来源:Web前端之家浏览:306评论:0
关键词:apply()call()
微信公众号

微信公众号

改变this指向"二人组":apply()和call()

每个函数都包含两个非继承而来的方法:apply()和call()。

call与apply都属于Function.prototype的一个方法,所以每个function实例都有call、apply属性;

作用

call()方法和apply()方法的作用相同:改变this指向

区别

他们的区别在于接收参数的方式不同:

call():第一个参数是this值没有变化,变化的是其余参数都直接传递给函数。在使用call()方法时,传递给函数的参数必须逐个列举出来。

apply():传递给函数的是参数数组

如下代码做出解释:

function add(c, d){ 
    return this.a + this.b + c + d; 
} 
var o = {a:1, b:3}; 
add.call(o, 5, 7); // 1 + 3 + 5 + 7 = 16 
add.apply(o, [10, 20]); // 1 + 3 + 10 + 20 = 34

温馨提示:本文作者系 ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
https://jiangweishan.com/article/js20200713a1.html

网友评论文明上网理性发言 已有0人参与

发表评论:

最新留言

  • ajoy

    说法可以是一样的,毕竟JS和JQ都是有“血缘关系”的,你可以自己改下不就可以了吗,哈哈!...

  • 访客

    标题是JS用了JQ误人子弟呢...

  • absoy

    vue居然还能这么玩,期待你们vue3.0中文版教程。...

  • caij2

    github也中了新冠病毒了吧,哈哈!...

  • 访客

    收藏啦...

  • Web前端之家

    当然都可以被import,如何去设置,还要看你的具体项目要求。...

  • 访客

    exportdefault和vue的实例有啥子区别呢都可以被import...

  • Web前端之家

    可以加QQ群295431592咨询。...

首页|JavaScript|HTML|HTML4|HTML5|CSS3|开发工具|性能优化|移动开发|前端教程|性能优化|开发工具|酷站欣赏|UI设计|前端教程

Copyright © 2020 Web前端之家(www.jiangweishan.com) 版权所有 All Rights Reserved.
粤ICP备12067512号-1

Copyright Your WebSite.Some Rights Reserved.

Powered By Z-BlogPHP 1.6.4 Valyria