理解JS中继承和关之Call和APPLY 方法
《理解JS中继承和关之Call和APPLY 方法》由会员分享,可在线阅读,更多相关《理解JS中继承和关之Call和APPLY 方法(3页珍藏版)》请在装配图网上搜索。
1、/-/-下面开始理解继承./ 先复习一下C+的对象的继承/ class a/ / int a1,a2;/ / /-定义构造函数/ public a(int a1,int a2)/ / this.a1=a1;this.a2=a2;/ / / public void show()/ / /-一年多没接触了。忘了都。/ count+this.color+ +this.language); /-那么因为父类是有参数的(所谓的构造函数吧。)/所以定义一个子类 非洲人function afciaPeo(scolor,alanguage,food) /子类的this 的方法指针指向了 父类的构造函数this
2、.getMed=peopleCls;/指向了构造函数之后开始为父类赋值的操作this.getMed(scolor,alanguage);/必须显示指定么? afciaPeo.prototype.showMsg=peopleCls.prototype.showMsg;/因为子类可能有和父类相同的方法或是字段,所以,这里 为了保险需要删除定义的这个方法的引用,虽然删除了方法的引用了。但是子类的内部已经有了父类的 共有方法或是属性字段吧deletethis.getMed;/ 子类自己的字段this.food=food; /外部增加方法 afciaPeo.prototype.showFood=func
3、tion() alert(子类=+this.food); /开始演示/ var f_1=new peopleCls(地球色,地球文);/ f_1.showMsg();/ var s_1=new afciaPeo(肯尼亚,黑色,蜀黍);/-输出 子类的方法/alert(s_1.color); /js中好像不分公共或是私有吧。这里可以访问继承自超类的/alert(s_1.color);/因为我这里是把方法写入到了超类的prototype中。所以在子类中不能访问到.如何解决?/ s_1.showMsg();/-这里采用特征发验证是否由此函数存在, 记住.特征法啊。if(typeof afciaPeo
4、.prototype.length!=undefined) alert(s_1.prototype.length);/开来前面是必须显示指定了 / afciaPeo.prototype.showMsg=peopleCls.prototype.showMsg;/s_1.showMsg();/这样就可以获取到父类的方法了/ s_1.showFood();/-下面是两种ECMASCRIPT 的方法,Call和 Apply方法/ call方法比较好理解function afciaPeo(scolor,alanguage,food) /利用父类的Call 里面的一个this表示的是 父类的构造函数中的t
5、his。 scolor,alanguage); 则表示要赋值给父类的参数,这样比较简单,其实,本质还是 对象冒充方法。 peopleCls.call(this,scolor,alanguage);this.food=food; var v =new afciaPeo(褐色,非洲语,蜀黍); alert(v.color);/-还有一种是 apply方式/其实和call方法基本差不多。无非就是 apply的第二个参数是一个数组。所以注意区别 function afciaPeo(scolor,alanguage,food) /利用父类的Call 里面的一个this表示的是 父类的构造函数中的this。 scolor,alanguage); 则表示要赋值给父类的参数,这样比较简单,其实,本质还是 对象冒充方法。 peopleCls.apply(this,new Array(scolor,alanguage);/ 也可以直接使用arguments 但是必须保证所有的子类的参数都等于父类的参数,参数个数可以不一样,但是顺序必须保证 this.food=food; var v =new afciaPeo(褐色,非洲语,蜀黍); alert(v.language);
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。