位置: 编程技术 - 正文
推荐整理分享详解JavaScript中基于原型prototype的继承特性(javascript definitive guide),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:javascriptcsdn,javascript的,javascriptcsdn,javascript definitive guide,javascriptz,javascript entries,javascriptz,javascript的,内容如对您有帮助,希望把文章链接给更多的朋友!
JavaScript 中的继承比较奇葩,无法实现接口继承,只能依靠原型继承。
原型链原型就是一个对象,通过构造函数创建出来的实例会有指针指向原型得到原型的属性和方法。这样,实例对象就带有构造函数的属性方法和原型的属性方法,然后将需要继承的构造函数的原型指向这个实例,即可拥有这个实例的所有属性方法实现继承。看下面演示代码:
所有函数的默认原型都是 Object 的实例,因此默认原型都会包含一个内部指针,指向 Object.prototype。使用 instanceof 和 isPrototypeOf 可以确定原型和实例的关系:
使用原型链的时候,需要谨慎的定义方法。子类需要重写超类型的某个方法或者扩充,一定要放在替换原型的语句后面,这样才能生效。此外,通过原型链实现继承时,不能使用对象字面量创建原型方法,这样会重写原型链:
这会更换指针指向新对象,从而重写了原型链。原型链的继承方法是有缺陷的,主要有两个问题:1,来自包含引用类型值的原型,会被所有实例共享。前面文章介绍过包含引用类型值的原型属性会被所有实例共享,一个实例修改,其他实例会随之改变,因此需要在构造函数中定义属性。而原型链继承的时候,无论超类中属性是在构造函数还是原型中定义,全部都变成了实例对象被子类继承,从而对子类的实例产生影响。2,创建子类型的实例时,不能向超类型的构造函数中传递参数。原型链的继承,直接将子类原型指向超类的实例,这时候可以向超类传递参数。但是当子类创建实例的时候,只能向子类的构造函数传递参数,而不能向超类的构造函数传递参数。因此实际应用中,很少单独使用原型链。
相关的一些代码实践
鉴别一个原型属性
在构造函数中使用原型对象
对象继承
模块模式
作用域的构造函数
jQuery Mobile 和 Kendo UI 的比较 jQueryMobile和KendoUI都是流行的JavaScript框架,在开发中我们可以在它们的基础上添砖加瓦制作所有现代移动WEB应用。这两个框架都是基于使用率顶尖的JavaSc
整理JavaScript对DOM中各种类型的元素的常用操作 节点类型nodeType以下是一些重要的nodeType的取值:1:元素element2:属性attr3:文本text8:注释comments9:文档documentnodeName,nodeValue节点关系childNodes:每个节点
JavaScript中各种引用类型的常用操作方法小结 Object类型Array类型重排序方法:compare升序:functioncompare(value1,value2){if(value1value2){return-1;}if(value1value2){return1;}else{return0;}}varvalues=[0,1,5,,];values.sort(compare);c
标签: javascript definitive guide
本文链接地址:https://www.jiuchutong.com/biancheng/370025.html 转载请保留说明!友情链接: 武汉网站建设