jsapply(js中call和apply的区别)

2025-04-13 07:30:02 0

jsapply(js中call和apply的区别)

本文目录

js中call和apply的区别

JS中有时常用到 apply 和 call 两个方法,搜索网上很多,整理如下,简单看看这两个联系和区别,

联系:

网上查到关于apply和call的定义:这两个方法都能劫持另外一个对象的方法,继承另外一个对象的属性.

xxxFunction.apply(obj,args) 方法接收两个参数obj:这个对象将代替xxxFunction类里this对象,也即xxxFunction类(函数)里的this不在是指 xxxFunction 本身,而是obj;args:这个是数组类型的参数,它将作为参数传给Function(args --》 arguments)结果是还是执行 xxxFunction 类方法(函数)的功能,只不过该 xxxFunction 函数以另一个目标对象和一个数组作为参数传递进 xxxFunction 函数,xxxFunction函数里面的 this 是传进的目标对象,二不是 xxxFunction 本身;

call:和apply类似的,只不过是参数列表不一样.

xxxFunction.call(obj,作为参数传递进 xxxFunction 函数,xxxFunction函数里面的 this 是传进的目标对象,二不是 xxxFunction 本身;

区别:

用法上不同,主要是参数不完全同

举例:

function Person(name,age) {  

this.name=name;  

this.age=age;  

this.money = 500;

function myFun(money) {

alert(this.money);

}

var money = 100;

myFun(money); 

//return 100;  //window.myFun(money); save to myFun(money);

//这个时候this指向的是window对象,其实myFun函数和定义的var money = 100;都作为window对象子对象(即全局对象)

myFun.apply(window,);  //save to window.myFun.apply(window,);  

//return 100;  //同上

myFun.apply(new Person(’zhangsan’,23),);  

//return 500, 空数组作为参数,仅符合语法要求

//这个时候myFun方法里面的this指向的是new Person(’zhangsan’,23)对象,二不是myFun类(函数),故弹出500

myFun.call(new Person(’zhangsan’,23),money,300,’mycardId’);  

//return 500, 后面money,300和mycardId是参数列表作为参数,一一列出

//这个时候myFun方法里面的this指向的是new Person(’zhangsan’,23)对象,二不是myFun类(函数),故弹出500

js中apply和call的区别

一、call和apply的说明

  1. call,apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例(就是每个方法)都有call,apply属性。既然作为方法的属性,那它们的使用就当然是针对方法的了,这两个方法是容易混淆的,因为它们的作用一样,只是使用方式不同。

  2. 语法:foo.call(this, arg1,arg2,arg3) == foo.apply(this, arguments) == this.foo(arg1, arg2, arg3);

  3. 相同点:两个方法产生的作用是完全一样的。

  4. 不同点:方法传递的参数不同。

二、实例代码

《script type=“text/javascript“》function A(){this.flag = ’A’;this.tip = function(){alert(this.flag);};}function B(){this.flag = ’B’;}var a = new A();var b = new B();//a.tip.call(b);a.tip.apply(b);《/script》

三、代码解释(即说明apply和call作用)

  1. 实例代码定义了两个函数A和B,A中包含flag属性和tip属性(这个属性赋值一个函数),B中有一个flag属性。

  2. 分别创建A和B的对象a和b。

  3. 无论是a.tip.call(b);和a.tip.apply(b);运行的结果都是弹出B。

  4. 从结果中可以看出call和apply都可以让B对象调用A对象的tip方法,并且修改了this的当前作用对象。

js中call,apply和bind方法的区别和使用场景

1、call,apply和bind的区别它们在功能上是没有区别的,都是改变this的指向,它们的区别主要是在于方法的实现形式和参数传递上的不同。call和apply方法都是在调用之后立即执行的。而bind调用之后是返回原函数,需要再调用一次才行,2、①:函数.call(对象,arg1,arg2....)②:函数.apply(对象,)③:var ss=函数.bind(对象,arg1,arg2,....)3、总结一下call,apply,bind方法:a:第一个参数都是指定函数内部中this的指向(函数执行时所在的作用域),然后根据指定的作用域,调用该函数。b:都可以在函数调用时传递参数。call,bind方法需要直接传入,而apply方法需要以数组的形式传入。c:call,apply方法是在调用之后立即执行函数,而bind方法没有立即执行,需要将函数再执行一遍。有点闭包的味道。d:改变this对象的指向问题不仅有call,apply,bind方法,也可以使用that变量来固定this的指向。

js中的call和apply方法的区别

cal,apply,第一个传参就是内部改变this,区别在于给函数传参不一样。这里不讨论this,举例:function a(b,c){return b*c}a.call(null,2,3) === 6 a.apply(null,) === 6

jsapply(js中call和apply的区别)

本文编辑:admin
: jsapply,

更多文章:


调用api接口(JS怎么调用API接口)

调用api接口(JS怎么调用API接口)

本文目录JS怎么调用API接口什么是api 在程序中怎么调用前端怎么调用api接口c#调用api接口web前端怎么调用api接口java 如何模拟浏览器调用rest api接口怎么使用java调用api接口java中怎么调用api数据接口j

2025年4月13日 00:00

write是什么词性(Write是什么意思)

write是什么词性(Write是什么意思)

本文目录Write是什么意思write的意思是什么“write”是什么意思Write是什么意思write 英 第三人称单数:writes 现在分词:writing 过去式:wrote过去分词:writtenwrite的意思是什么

2025年3月11日 15:40

infrastructure怎么读(infrastructure怎么读)

infrastructure怎么读(infrastructure怎么读)

本文目录infrastructure怎么读infrastructure 用中文怎么说infrastructure怎么读infrastructure读法:英 复数:infrastructures 形近词: pseudostructure ex

2025年4月9日 08:00

interger(integer是啥意思)

interger(integer是啥意思)

本文目录integer是啥意思int与Integer的区别integer是啥意思int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别:int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象1.J

2025年3月29日 02:00

十进制转八进制过程(十进制,八进制互转)

十进制转八进制过程(十进制,八进制互转)

本文目录十进制,八进制互转10进制的小数怎么转化成8进制,详细点,再举点例子十进制数64转换为八进制怎么转换要详细过程,谢啦十进制转八进制方法与过程以及例题解法如何将十进制转换成八进制和十六进制将十进制数520转换成八进制、十六进制(写出计

2025年4月3日 15:50

singular matrix(singular matrix 怎么解决)

singular matrix(singular matrix 怎么解决)

本文目录singular matrix 怎么解决奇异矩阵是什么singular matrix 怎么解决用EVIEWS做回归方程时有时出现的错误讯息显示near singular matrixsingular matrix是奇异矩阵的意思。设

2025年4月10日 15:50

country music(nation和country有什么区别,应用场景上有需要注意的么)

country music(nation和country有什么区别,应用场景上有需要注意的么)

本文目录nation和country有什么区别,应用场景上有需要注意的么怎么看待有些人把country music理解为国家音乐而不是乡村音乐nation和country有什么区别,应用场景上有需要注意的么nation:国家、民族、国民、政

2025年2月10日 16:30

目前常用的原型设计软件有哪些?WeaselCoffee是神马

目前常用的原型设计软件有哪些?WeaselCoffee是神马

本文目录目前常用的原型设计软件有哪些WeaselCoffee是神马目前常用的原型设计软件有哪些初级UI设计师更加关注的是界面的视觉效果,而高级UI设计师,不仅要考虑用户的视觉体验,更多的是关注用户使用体验和交互设计。所以UI设计师的晋升之路

2025年2月19日 06:10

win7如何彻底清理c盘(win7c盘变红满了怎么清理不会删掉有用的)

win7如何彻底清理c盘(win7c盘变红满了怎么清理不会删掉有用的)

本文目录win7c盘变红满了怎么清理不会删掉有用的win7怎样释放c盘空间win7 c盘怎么清理垃圾而不误删win7如何彻底清理c盘win7如何彻底清理c盘空间win7系统怎么彻底清理c盘空间win7电脑怎么清理c盘win7怎样彻底清理c盘

2025年3月8日 19:10

nutritional什么意思(nutrient和nutrition的区别是什么)

nutritional什么意思(nutrient和nutrition的区别是什么)

本文目录nutrient和nutrition的区别是什么nutritions 什么意思nutrition与nutrient的区别nutrition是什么意思nutritional和nutritious的区别是什么nutrient和nutri

2025年3月27日 08:20

jst连接器代理商(我是一名采购,听说现在的假货跟真的一样,我要如何分辨买回来的JST端子是真是假)

jst连接器代理商(我是一名采购,听说现在的假货跟真的一样,我要如何分辨买回来的JST端子是真是假)

本文目录我是一名采购,听说现在的假货跟真的一样,我要如何分辨买回来的JST端子是真是假这个应该是JST的连接器,我想知道它的具体型号是什么广濑连接器代理有哪些我是一名采购,听说现在的假货跟真的一样,我要如何分辨买回来的JST端子是真是假连接

2025年2月25日 17:40

commando(电脑想升级,华硕commando主板最高能上什么CPU和显卡,内存)

commando(电脑想升级,华硕commando主板最高能上什么CPU和显卡,内存)

本文目录电脑想升级,华硕commando主板最高能上什么CPU和显卡,内存commando是什么意思电脑想升级,华硕commando主板最高能上什么CPU和显卡,内存早期的965芯片组。。。华硕这款主板对硬件的支持情况还是不错的,得益于一线

2025年2月21日 22:40

做跨境电商用POD模式靠谱么?DNSPod的DNS地址是什么

做跨境电商用POD模式靠谱么?DNSPod的DNS地址是什么

本文目录做跨境电商用POD模式靠谱么DNSPod的DNS地址是什么做跨境电商用POD模式靠谱么1.什么是POD?POD = Print On Demand 顾名思义是按需打印,POD 在国外也是非常热门的创业模式之一。POD类似Dropsh

2025年4月12日 21:50

socket error 11004(统一加速器出现Socket Error #11004 要咋么办)

socket error 11004(统一加速器出现Socket Error #11004 要咋么办)

本文目录统一加速器出现Socket Error #11004 要咋么办网络显示连接上,但是不能上网,出现:socket errorSocket Error 11004的报错的原因是什么为什么老出现Socket error,是什么意思啊统一加

2025年2月22日 21:00

在线编程课哪个比较好(最近想在线上给孩子报个编程课学习,请问有什么平台比较好的,好课测评这个平台如何)

在线编程课哪个比较好(最近想在线上给孩子报个编程课学习,请问有什么平台比较好的,好课测评这个平台如何)

本文目录最近想在线上给孩子报个编程课学习,请问有什么平台比较好的,好课测评这个平台如何现在少儿编程机构这么多,哪些比较好该如何选择呢编程网课哪个好孩子在家学编程,免费少儿编程网站有哪个不知道哪家机构的编程课比较好少儿编程网课哪个好编程课哪个

2025年3月31日 05:20

machine tool(machine tools怎么样)

machine tool(machine tools怎么样)

本文目录machine tools怎么样machine组成的词语机电专业英语作文 题目machine tools谢谢machine tool 杂志怎么样machine tools怎么样你说的应该是《international journal

2025年2月28日 16:30

removeattr(jquery 的removeAttr和attr)

removeattr(jquery 的removeAttr和attr)

本文目录jquery 的removeAttr和attrjquer怎么removeattr用户选中的jquery 的removeAttr和attr$(“#form1“)是获取DOM对象.$(“#form1“)获得的是JQuery对象,不能使用

2025年2月28日 01:20

vaseline是什么意思(vaseline-original是什么意思)

vaseline是什么意思(vaseline-original是什么意思)

本文目录vaseline-original是什么意思sakose为什么也叫凡士林vaseline-original是什么意思vaseline-original凡士林干油请采纳如果你认可我的回答,敬请及时采纳~如果你认可我的回答,请及时点击【

2025年3月25日 06:00

jsoup模拟登录(求真正有效的可以模拟登录新浪微博的java代码,后续可以用Jsoup进行抓取急急!!登录成功马上给分!)

jsoup模拟登录(求真正有效的可以模拟登录新浪微博的java代码,后续可以用Jsoup进行抓取急急!!登录成功马上给分!)

本文目录求真正有效的可以模拟登录新浪微博的java代码,后续可以用Jsoup进行抓取急急!!登录成功马上给分!Java怎么模拟登录亚马逊中国网站webmagic 怎么模拟登陆模拟网页登陆成功后跳转怎么实现关于java一个登陆页面获取数据的实

2025年3月25日 07:50

新手魔方教程(魔方的技巧及新手入门玩法)

新手魔方教程(魔方的技巧及新手入门玩法)

本文目录魔方的技巧及新手入门玩法魔方拼一面到六面新手教程魔方的技巧及新手入门玩法魔方肯定很多朋友都玩过,并且对魔方特别感兴趣的朋友也不在少数,不过会玩魔方的人并不多,很多人玩几个小时都不能把魔方完整拼出来,而有的人则几秒钟就能拼好,那还是因

2025年3月16日 13:20

近期文章

rounds(round是什么意思)
2025-04-13 13:30:03
本站热文

harbor,port,pier的区别?谁能解释“harbour“(港口)与“pier“(码头)的区别
2025-02-22 17:40:03 浏览:19
ibatis foreach(ibatis 批量update操作)
2025-02-10 23:40:06 浏览:7
endless rain(endless rain表达什么情感)
2025-02-14 06:00:02 浏览:7
标签列表

热门搜索