call(apply)应用说明.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
call(apply)应用说明

1.Call方法 call 方法 调用一个对象的一个方法,以另一个对象替换当前对象。 call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 参数 thisObj 可选项。将被用作当前对象的对象。 arg1, arg2, , argN 可选项。将被传递方法参数序列。 说明 call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。 如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。 如果你以前没有用过此方法,读起来是很迷茫的,下面先看看例子,理清一下思路。 function person(name,age,sex){??//定义person this.name=name; this.age=age; this.sex=sex; } function student(name,age,sex,university,major){??//定义Student this.university=university; this.major=major; person.call(this,name,age,sex);??//person.call(student,argument...) } var john=new student(john,20,male,MIT,webdeveloper); //添加实例 alert(john.age);??//显示结果为20 从上面的函数看,按理说student并没有age这个属性,但为什么john.age会是 20?原因就是 person.call(student,name,age,sex);从结果看,call多少有点继承的味道。 A.call(B,argument,argument2...),结果就是B继承了A,对B进行实例化后,B里面继承了A的属性和方法。 function person(name,age,sex){ this.name=name; this.age=age; this.sex=sex; this.say=function(){alert(my name is +name);} } function student(name,age,sex,university,major){ this.university=university; this.major=major; person.call(this,name,age,sex); } var john=new student(john,20,male,MIT,webdeveloper); alert(john.age); john.say();??//调用say()方法,显示my name is john 只有方法才call方法,其他对象或属性没有,这里指的方法即typeof(any)==’function’,其他typeof非function的都没有call方法,比如Array数组就没有call方法。 稍微改动一下: function person(name,age,sex){ this.name=name; this.age=age; this.sex=sex; this.say=function(){alert(my name is +this.name);} } function student(name,age,sex,university,major){ this.name=inner; this.university=university; this.major=major; } var john=new student(john,20,male,MIT,webdeveloper); var person2=new person(); person2.say.call(john);??//显示结果为my name is inner person2.say.call(john),其实就是让john对象调用person2的say方法,而john对象里面 this.name=inner,john调用perosn2的say方法的时候,关键字变量this.name会被替换,所以结果为:my name is inner。 同时继承多个类: function parent(father,mother){ this.father=father; this.mother=mother; this.tell=function(){alert(this.father+,+this.mother)} } function person(name,age,se

您可能关注的文档

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档