JavaScript之call()&apply()
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript之call()&apply()相关的知识,希望对你有一定的参考价值。
场景一:定义了一个类A,给它一个getName的方法;定义了一个类B,给它一个setName的方法;之前A只需要获取它的Name,B也只需要设置它的Name,但现在有新的需求,A和B都需要设置和获取他们各自的Name,肿么办,来吧,让call()和apply()带你飞~~~
1 //定义一个类A 2 function A(name){ 3 this.Name=name; 4 } 5 //类A一个获取name的方法 6 A.prototype.GetName=function(){ 7 return this.Name; 8 } 9 //定义一个类B 10 function B(name){ 11 this.Name=name; 12 } 13 //类B一个设置name的方法 14 B.prototype.SetName=function(rename){ 15 this.Name=rename; 16 } 17 //创建对象a,b 18 var a=new A("我是a"),b=new B("我是b"); 19 //b想知道它的名字 20 a.GetName.call(b); //结果: "我是b" ps:将this指向b 21 a.GetName.apply(b); //结果: "我是b" ps:将this指向b 22 //a想修改它的名字 23 b.SetName.call(a,"我是AA"); //ps:将this指向a 24 b.SetName.apply(a,["我是AA"]); //ps:将this指向a 25 a.GetName() //结果:"我是AA"
以上是关于JavaScript之call()&apply()的主要内容,如果未能解决你的问题,请参考以下文章