javascript中apply()和call()方法的区别.docx 立即下载
2025-08-15
约1.9千字
约4页
0
11KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

javascript中apply()和call()方法的区别.docx

javascript中apply()和call()方法的区别.docx

预览

在线预览结束,喜欢就下载吧,查找使用更方便

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

javascript中apply()和call()方法的区别

关于javascript中apply()和call()方法的区别如果没接触过动态语言,以编译型语言的思维方式去理解javaScript将会有种神奇而怪异的感觉,因为意识上往往不可能的事偏偏就发生了,甚至觉得不可理喻.如果在学JavaScript这自由而变幻无穷的语言过程中遇到这种感觉,那么就从现在形始,请放下的您的”偏见”,因为这对您来说绝对是一片新大陆。好了,不给大家唠嗑了,言归正传吧,先给大家讲下apply和call方法的定义。具体内容如下所示:方法定义call,apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例,也就是每个方法都有call,apply属性.既然作为方法的属性,那它们的使用就当然是针对方法的了.这两个方法是容易混淆的,因为它们的作用一样,只是使用方式不同.call方法:语法:call([thisObj[,arg1[,arg2[,[,.argN]]]]])定义:调用一个对象的一个方法,以另一个对象替换当前对象。说明:call方法可以用来代替另一个对象调用一个方法。call方法可将一个函数的对象上下文从初始的上下文改变为由thisObj指定的.新对象。如果没有提供thisObj参数,那么Global对象被用作thisObj。apply方法:语法:apply([thisObj[,argArray]])定义:应用某一对象的一个方法,用另一个对象替换当前对象。说明:如果argArray不是一个有效的数组或者不是arguments对象,那么将导致一个TypeError。如果没有提供argArray和thisObj任何一个参数,那么Global对象将被用作thisObj,并且无法被传递任何参数call,apply作用就是借用别人的方法来调用,就像调用自己的一样.它们的不同之处:apply:最多只能有两个参数——新this对象和一个数组argArray。如果给该方法传递多个参数,则把参数都写进这个数组里面,当然,即使只有一个参数,也要写进数组里面。如果argArray不是一个有效的数组或者不是arguments对象,那么将导致一个TypeError。如果没有提供argArray和thisObj任何一个参数,那么Global对象将被用作thisObj,并且无法被传递任何参数。call:则是直接的参数列表,主要用在js对象各方法互相调用的时候,使当前this实例指针保持一致,或在特殊情况下需要改变this指针。如果没有提供thisObj参数,那么Global对象被用作thisObj。更简单地说,apply和call功能一样,只是传入的参数列表形式不同:如func.call(func1,var1,var2,var3)对应的apply写法为:func.apply(func1,[var1,var2,var3])如:add.apply(sub,[3,1]);//add.call(sub,3,1);vara={n:1,m:2,add:function(){returnthis.n+this.m;}}varb={n:3,m:4}console.log(a.add.call(b));//b.n+b.m=7functionAnimal(){this.name="Animal";this.showName=function(){alert(this.name);}}functionCat(){this.name="Cat";}varanimal=newAnimal();varcat=newCat();//通过call或apply方法,将原本属于Animal对象的showName()方法交给对象cat来使用了。//输入结果为"Cat"animal.showName.call(cat,",");animal.showName.apply(cat,[]);以上内容是小编给大家介绍的apply和call方法定义及apply和call方法的区别,希望大家喜欢。
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

javascript中apply()和call()方法的区别

文档大小:11KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用