apply什么意思

更新时间:2022-11-25 07:01:07 阅读: 评论:0


2022年11月25日发(作者:elaine)

js继承call()和apply()⽅法总结

1、⽅法定义

call⽅法:

语法:call([thisObj[,arg1[,arg2[,[,.argN]]]]])

定义:调⽤⼀个对象的⼀个⽅法,以另⼀个对象替换当前对象。

说明:

call⽅法可以⽤来代替另⼀个对象调⽤⼀个⽅法。call⽅法可将⼀个函数的对象上下⽂从初始的上下⽂改变为由thisObj指定

的新对象。

如果没有提供thisObj参数,那么Global对象被⽤作thisObj。

apply⽅法:

语法:apply([thisObj[,argArray]])

定义:应⽤某⼀对象的⼀个⽅法,⽤另⼀个对象替换当前对象。

说明:

如果argArray不是⼀个有效的数组或者不是arguments对象,那么将导致⼀个TypeError。

如果没有提供argArray和thisObj任何⼀个参数,那么Global对象将被⽤作thisObj,并且⽆法被传递任何参数。

2、常⽤实例

a、

复制代码代码如下:

functionadd(a,b)

{

alert(a+b);

}

functionsub(a,b)

{

alert(a-b);

}

(sub,3,1);

这个例⼦中的意思就是⽤add来替换sub,(sub,3,1)==add(3,1),所以运⾏结果为:alert(4);//注意:js中的函数其

实是对象,函数名是对Function对象的引⽤。

b、

复制代码代码如下:

functionAnimal(){

="Animal";

me=function(){

alert();

}

}

functionCat(){

="Cat";

}

varanimal=newAnimal();

varcat=newCat();

//通过call或apply⽅法,将原本属于Animal对象的showName()⽅法交给对象cat来使⽤了。

//输⼊结果为"Cat"

(cat,",");

//(cat,[]);

call的意思是把animal的⽅法放到cat上执⾏,原来cat是没有showName()⽅法,现在是把animal的showName()⽅法放到

cat上来执⾏,所以应该是Cat

c、实现继承

复制代码代码如下:

functionAnimal(name){

=name;

me=function(){

alert();

}

}

functionCat(name){

(this,name);

}

varcat=newCat("BlackCat");

me();

(this)的意思就是使⽤Animal对象代替this对象,那么Cat中不就有Animal的所有属性和⽅法了吗,Cat对象就能

够直接调⽤Animal的⽅法以及属性了.

d、多重继承

复制代码代码如下:

functionClass10()

{

b=function(a,b)

{

alert(a-b);

}

}

functionClass11()

{

d=function(a,b)

{

alert(a+b);

}

}

functionClass2()

{

(this);

(this);

}

很简单,使⽤两个call就实现多重继承了

当然,js的继承还有其他⽅法,例如使⽤原型链,这个不属于本⽂的范畴,只是在此说明call的⽤法。说了call,当然还有

apply,这两个⽅法基本上是⼀个意思,区别在于call的第⼆个参数可以是任意类型,⽽apply的第⼆个参数必须是数组,也可

以是arguments

还有callee,caller..

本文发布于:2022-11-25 07:01:07,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/16971.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:soup怎么读
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图