call和apply的作用和不同

相同点:

call和apply的作用都是改变this关键字,让当前的函数执行,把里面的this关键字进行改变

区别:

call在传递参数的时候是一个个的传,apply在传递参数的时候,是把需要传递的参数放在一个数组中一起传进去。

为什么函数可以调用call和apply方法:

Function 是js中所有函数数据类型对应的基类。call和apply就定义在Function这个基类的原型上。

时间: 2024-10-24 01:56:03

call和apply的作用和不同的相关文章

call和apply的作用和区别

call和apply用来调用函数,并用指定对象(第一个参数)替换函数的 this 值,同时用指定数组替换函数的参数.注:也可以不指定参数,此时只是单纯的调用函数,如:fun.call() 语法: fun.call(thisobj,arg1,arg2) ;当后面参数个数确定时用call,参数之间用逗号连接 fun.apply(thisobj,[arg1,arg2]):当后面参数个数不确定时用apply,参数通过数组形式输入 call和apply的作用: 改变this的指向,第一个参数为你要传入的对

JS基础:this的指向以及call、apply的作用

this 的指向 在具体的实际应用中,this 的指向无法在函数定义时确定,而是在函数执行的时候才确定的,根据执行时的环境大致可以分为以下3种: 1.当函数作为普通函数调用时,this 指向全局对象 2.当函数作为对象的方法调用时,this 指向该对象 3.当函数作为构造器调用时,this 指向新创建的对象 示例一: window.name = 'myname'; function getName() { console.log(this.name); } getName(); //输出myna

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

call, apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例,也就是每个方法都有call, apply属性.既然作为方法的属性,那它们的使用就当然是针对方法的了.这两个方法是容易混淆的,因为它们的作用一样,只是使用方式不同. 相同点:他们的作用都是相同的 不同点:他们的参数不同 call(this,arg1,arg2,arg3); apply(this,argum

apply()方法call()方法的作用和比较

apply()方法的定义: 1. apply()方法能劫持另外一个对象的方法,继承另外一个对象的属性 2.Function.apply(obj,args)方法能接收两个参数 3.obj:这个对象将代替Function类里this对象 4.args:这个是数组,它将作为参数传给Function(args–>arguments) function Person(){ this.name="木木" this.age='18' console.log(this.sex) console.

javascript技术难点(三)之this、new、apply和call详解

4)    this.new.call和apply的相关问题 讲解this指针的原理是个很复杂的问题,如果我们从javascript里this的实现机制来说明this,很多朋友可能会越来越糊涂,因此本篇打算换一个思路从应用的角度来讲解this指针,从这个角度理解this指针更加有现实意义. 下面我们看看在java语言里是如何使用this指针的,代码如下: public class Person { private String name; private String sex; private

call,apply,bind

call,apply,bind 一.call&apply call, apply都属于Function.prototype的方法,因为属于Function.prototype,所以每个Function对象实例,也就是每个方法都有call, apply属性啦. 如果不明白,请见“Javascript之一切皆为对象3”. 而且它们的作用都是一样的,只是使用方式不同而已. 作用:借用别人的方法来调用,就像自己有这个方法一样. 咦,那它们怎样才能达到这目的呢? 对象. 对象? 是的,其实就是改变执行上下

js如何是利用apply实现继承

js如何是利用apply实现继承:javascript是一种面向对象的语言,当然继承是它的重要特征之一,比如常规的可以使用原型实现继承,不过使用apply可是可以实现继承的,下面就通过代码实例介绍一下,关于apply函数这里就不介绍了,具体可以参阅javascript的call()和apply()的作用和区别一章节. 下面看代码实例: function Parent(username){ this.username=username; this.sayHello=function(){ aler

javascript之this、new、apply和call详解

this.new.call和apply的相关问题 讲解this指针的原理是个很复杂的问题,如果我们从javascript里this的实现机制来说明this,很多朋友可能会越来越糊涂,因此本篇打算换一个思路从应用的角度来讲解this指针,从这个角度理解this指针更加有现实意义. 下面我们看看在java语言里是如何使用this指针的,代码如下: public class Person { private String name; private String sex; private int ag

ECMAScript——引用数据类型之function关于call和apply

call.apply:作用:1.改变函数中的this,把第一个形参的值作为当前函数的this2.让当前的函数执行例如:fn.call(obj) 让fn中的this变为obj,然后在让fn函数执行 区别:在给函数传递参数的时候,call是一个个传,apply是把需要传递的参数放到一个数组中,一起传进去函数名.call([this],parameter1,parameter2...)函数名.apply([this],[parameter1,parameter2...]) call/apply:第一个