欢迎来到天天文库
浏览记录
ID:59602220
大小:12.00 KB
页数:4页
时间:2020-11-14
《理解JS中继承和关之Call和APPLY 方法.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、//-----------------------------------------------------------------------------------------------------//-----------------------------------下面开始理解继承..........................................//先复习一下C++的对象的继承//classa//{//inta1,a2;//////--定义构造函数//publica(inta1,inta2)//{//this.a1=a1;this.a2=a2;/
2、/}////publicvoidshow()//{////--一年多没接触了。忘了都。//count<3、===对象冒充===================。。。原理是:父类的构造函数,其实也是一个函数,所以了。给子类的一个函数,赋值父类的构造函数(其实是引用父类的构造函数的指针)//主要是利用this关键字进行相关的操作的//下面是一个原型法创建一个父类。人...functionpeopleCls(color,language){this.color=color;this.language=language;//--这里是一个测试函数,测试,采用了原型法后子类是否还会访问到超类的函数this.showColor=function(){alert(this.color);}}//4、方法在外部定义,,,利用原型方法peopleCls.prototype.showMsg=function(){alert("父类==>"+this.color+""+this.language);}//--那么因为父类是有参数的(所谓的构造函数吧。)//所以定义一个子类非洲人functionafciaPeo(scolor,alanguage,food){//子类的this的方法指针指向了父类的构造函数this.getMed=peopleCls;//指向了构造函数之后开始为父类赋值的操作this.getMed(scolor,alanguage);//必须显示指定么?afciaPe5、o.prototype.showMsg=peopleCls.prototype.showMsg;//因为子类可能有和父类相同的方法或是字段,所以,这里为了保险需要删除定义的这个方法的引用,虽然删除了方法的引用了。但是子类的内部已经有了父类的共有方法或是属性字段吧deletethis.getMed;//子类自己的字段this.food=food;}//外部增加方法afciaPeo.prototype.showFood=function(){alert("子类==>"+this.food);}//开始演示//varf_1=newpeopleCls("地球色","地球文");//f_6、1.showMsg();//vars_1=newafciaPeo('肯尼亚','黑色','蜀黍');//--输出子类的方法//alert(s_1.color);//js中好像不分公共或是私有吧。这里可以访问继承自超类的//alert(s_1.color);//因为我这里是把方法写入到了超类的prototype中。所以在子类中不能访问到.......如何解决??????????//s_1.showMsg();//---这里采用特征发验证是否由此函数存在,记住.....特征法啊。。。。。。。if(typeofafciaPeo.prototype.length!="undefined7、")alert(s_1.prototype.length);//开来前面是必须显示指定了//afciaPeo.prototype.showMsg=peopleCls.prototype.showMsg;//s_1.showMsg();//这样就可以获取到父类的方法了//s_1.showFood();//----------------------------下面是两种ECMASCRIPT的方法,,Call和Apply方法////call方法比较好理解functionafciaPeo(scol
3、===对象冒充===================。。。原理是:父类的构造函数,其实也是一个函数,所以了。给子类的一个函数,赋值父类的构造函数(其实是引用父类的构造函数的指针)//主要是利用this关键字进行相关的操作的//下面是一个原型法创建一个父类。人...functionpeopleCls(color,language){this.color=color;this.language=language;//--这里是一个测试函数,测试,采用了原型法后子类是否还会访问到超类的函数this.showColor=function(){alert(this.color);}}//
4、方法在外部定义,,,利用原型方法peopleCls.prototype.showMsg=function(){alert("父类==>"+this.color+""+this.language);}//--那么因为父类是有参数的(所谓的构造函数吧。)//所以定义一个子类非洲人functionafciaPeo(scolor,alanguage,food){//子类的this的方法指针指向了父类的构造函数this.getMed=peopleCls;//指向了构造函数之后开始为父类赋值的操作this.getMed(scolor,alanguage);//必须显示指定么?afciaPe
5、o.prototype.showMsg=peopleCls.prototype.showMsg;//因为子类可能有和父类相同的方法或是字段,所以,这里为了保险需要删除定义的这个方法的引用,虽然删除了方法的引用了。但是子类的内部已经有了父类的共有方法或是属性字段吧deletethis.getMed;//子类自己的字段this.food=food;}//外部增加方法afciaPeo.prototype.showFood=function(){alert("子类==>"+this.food);}//开始演示//varf_1=newpeopleCls("地球色","地球文");//f_
6、1.showMsg();//vars_1=newafciaPeo('肯尼亚','黑色','蜀黍');//--输出子类的方法//alert(s_1.color);//js中好像不分公共或是私有吧。这里可以访问继承自超类的//alert(s_1.color);//因为我这里是把方法写入到了超类的prototype中。所以在子类中不能访问到.......如何解决??????????//s_1.showMsg();//---这里采用特征发验证是否由此函数存在,记住.....特征法啊。。。。。。。if(typeofafciaPeo.prototype.length!="undefined
7、")alert(s_1.prototype.length);//开来前面是必须显示指定了//afciaPeo.prototype.showMsg=peopleCls.prototype.showMsg;//s_1.showMsg();//这样就可以获取到父类的方法了//s_1.showFood();//----------------------------下面是两种ECMASCRIPT的方法,,Call和Apply方法////call方法比较好理解functionafciaPeo(scol
此文档下载收益归作者所有