手机版

js中通过调用()和apply()改变指针的说明

时间:2021-08-27 来源:互联网 编辑:宝哥软件园 浏览:

1.每个函数包含两个非继承的方法:call()方法和apply()方法。(出生)

2.相似之处:这两种方法效果相同。

所有调用特定范围内的函数,这等于在函数体中设置此对象的值,以扩展函数运行的范围。

一般来说,这总是指向调用某个方法的对象,但是当使用call()和apply()方法时,这一点就会改变。

Call有两个奇妙的用途:

1:继承。2:在函数运行时修改这个指针。

区别:call和apply的区别在于,call的第二个参数可以是任何类型,而apply的第二个参数必须是数组或参数

Script //一般来说,这总是指向调用某个方法的对象,但是当使用call()和apply()方法时,这一点就会改变。/* call方法:语法:call (thisObj,arg1,arg2,argn)定义:调用一个对象的方法,用另一个对象替换当前对象参数thisobj可选的,对象arg1,arg2,argn用作当前对象;可选地,要传递的方法参数序列指示调用方法可以用来调用一个方法而不是另一个对象。调用方法可以将函数的对象上下文从初始上下文更改为由thisObj指定的新对象。如果没有提供thisObj参数,则使用Global对象作为thisObj *//* apply方法:语法:apply (thisobj,[arg1,arg2,定义:一个应用对象的方法。将当前对象替换为另一个对象*///区别:call和apply的区别在于,call的第二个参数可以是任何类型,而apply的第二个参数必须是数组或参数//1。函数Add (a,b) {console.log (a,b);}功能sub(a,b){ console . log(a-b);} add.call(sub,3,1);//将sub替换为add,add.call(sub,3,1)==add(3,1),结果为console . log(4);//2.函数Animal(){ this . name=' Animal ';this . show name=function(){ alert(this . name);} }函数Cat(){ this . name=' Cat ';} var Animal=new Animal();var Cat=new Cat();动物. showName.call(猫);//将原本属于Animal对象的showName()方法传递给cat,以供调用或应用方法使用。结果是警报(“猫”);//3.函数Animal(name){ this . name=name;this . show name=function(){ alert(this . name);} }函数Cat(name){ Animal.call(this,name);} var cat=新猫('黑猫');cat . show name();//Animal.call(这个)就是用Animal对象代替这个对象,那么Animal的所有方法和属性在Cat中都将可用,Cat对象可以直接调用Animal的方法和属性。//4.function class 10(){ this . ShowSub=function(a,b){ alert(a-b);} }函数class 11(){ this . show add=函数(a,b){ alert(a,b);} }函数class 2(){ class 10 . call(this);class 11 . call(this);}//通过两次调用实现多重继承。/脚本摘要

以上就是本文的全部内容。希望本文的内容对大家的学习或工作有一定的参考价值。谢谢你的支持。如果你想了解更多,请查看下面的相关链接

版权声明:js中通过调用()和apply()改变指针的说明是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。