码迷,mamicode.com
首页 > 移动开发 > 详细

JavaScript之call()&apply()

时间:2016-06-21 19:09:25      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:

场景一:定义了一个类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()

标签:

原文地址:http://www.cnblogs.com/yancy19/p/5601539.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!