美文网首页
call()与apply()的作用与区别

call()与apply()的作用与区别

作者: 喵呜Yuri | 来源:发表于2019-01-03 11:06 被阅读5次

原文:https://blog.csdn.net/mandyucan/article/details/80820139
每个函数都包含两个非继承而来的方法: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 

this指针指到apply()的括号里面了

相关文章

  • call与apply

    首先明确一点,call与apply的作用是一样的,只是传参的形式有区别而已。 1、call与apply的区别 ap...

  • this&原型链&继承

    问题1: apply、call 、bind有什么作用,什么区别 作用:指定this,改变作用域.apply与cal...

  • this

    this 的值到底是什么?一次说清楚 1、apply、call 、bind的作用与区别? call、apply 调...

  • this 继承

    1.apply call bind的作用与区别 apply call bind都是用来改变函数执行的上下文,也就是...

  • this

    apply、call 有什么作用,什么区别 call与apply 第一个参数都是希望设置的this对象 不同之处在...

  • this_原型链_继承

    问题1: apply、call 、bind有什么作用,什么区别? apply和call call apply,调用...

  • JS_call&apply

    因为call语法和作用与 apply 方法类似。只有一个区别,call 接受的是一个参数列表,而 apply 接受...

  • 高级2:this&原型链&继承

    问题1: apply、call 、bind有什么作用,什么区别 apply、 call的作用和区别基本语法: fn...

  • 前端基础(问答24)

    keywords: this、闭包、apply、call。 apply、call 有什么作用,什么区别 apply...

  • 多种方式实现call/apply/bind

    call/apply/bind 作用: 指定函数作用域上下文(this指向)。 区别: call/apply立即执...

网友评论

      本文标题:call()与apply()的作用与区别

      本文链接:https://www.haomeiwen.com/subject/lvqfrqtx.html