欢迎来到天天文库
浏览记录
ID:30520889
大小:17.21 KB
页数:7页
时间:2018-12-31
《详解javascript中基于原型prototype的继承特性》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解详解JavaScript中基于原型prototype的继承特性 这篇文章主要介绍了详解JavaScript中基于原型prototype的继承特性,JavaScript中缺少类等面向对象的重要特性,因而谈到继承也显得十分古怪...需要的朋友可以参考下 JavaScript中的继承比较奇葩,无法实现接口继承,只能依靠原型继承。 原型链 原型就是一个对象,通过构造函数创建出来的实
2、例会有指针指向原型得到原型的属性和方法。这样,实例对象就带有构造函数的属性方法和原型的属性方法,然后将需要继承的构造函数的原型指向这个实例,即可拥有这个实例的所有属性方法实现继承。 看下面演示代码: //声明超类,通过构造函数和原型添加有关属性和方法 functionSuper(){ this.property=true; } Super.prototype.getSuperValue=function(){ returnthis.property; };对党的认识也有了进一步的提高。才真正体会到了
3、中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 //声明子类的构造函数 functionSubType(){ this.subproperty=false; } //将子类的原型指向超类的实例,得到超类的一切 SubType.prototype=newSuper(); SubType.prototype.constructor=S
4、ubType; SubType.prototype.getSubValue=function(){ returnthis.subproperty; }; //由子类创建对象,测试是否继承超类方法和属性 varinstance=newSubType(); console.log(instance.getSuperValue()); 所有函数的默认原型都是Object的实例,因此默认原型都会包含一个内部指针,指向Object.prototype。 使用instanceof和isPrototypeOf可以确
5、定原型和实例的关系: instanceinstanceofObject; Object.prototype.isPrototypeOf(instance);对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 使用原型链的时候,需要谨慎的定义方法。子类需要重写超类型的某个方法或者扩充,一定要放在替换原型
6、的语句后面,这样才能生效。此外,通过原型链实现继承时,不能使用对象字面量创建原型方法,这样会重写原型链: ...... SubType.prototype=newSuper(); SubType.prototype={ .... }; 这会更换指针指向新对象,从而重写了原型链。 原型链的继承方法是有缺陷的,主要有两个问题: 1,来自包含引用类型值的原型,会被所有实例共享。 前面文章介绍过包含引用类型值的原型属性会被所有实例共享,一个实例修改,其他实例会随之改变,因此需要在构造函数中定义属性。而原型链
7、继承的时候,无论超类中属性是在构造函数还是原型中定义,全部都变成了实例对象被子类继承,从而对子类的实例产生影响。 2,创建子类型的实例时,不能向超类型的构造函数中传递参数。 原型链的继承,直接将子类原型指向超类的实例,这时候可以向超类传递参数。但是当子类创建实例的时候,只能向子类的构造函数传递参数,而不能向超类的构造函数传递参数。 因此实际应用中,很少单独使用原型链。 相关的一些代码实践对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表
8、我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 鉴别一个原型属性 functionhasPrototypeProperty(object,name){ returnnameinobject&&!object.hasOwnPrope
此文档下载收益归作者所有