设计模式知识连载(5)---继承_1:子类的原型对象-类式继承
2017-12-12 15:52
519 查看
<body> <h3>设计模式知识连载(5)---继承_1:子类的原型对象-类式继承</h3> <p></p> <script type="text/javascript"> /** * 类式继承--案例1: */ // // 声明父类 // function SuperClass() { // this.superValue = true ; // } ; // // 为父类添加共有方法 // SuperClass.prototype.getSuperValue = function() { // return this.superValue ; // } ; // // 声明子类 // function SubClass() { // this.subValue = false ; // } // // 继承父类 // // 把父类的实例赋予给子类的原型prototype,这样就实现了继承 // SubClass.prototype = new SuperClass() ; // // 为子类添加共有方法 // SubClass.prototype.getSubValue = function() { // return this.subValue ; // } // var subinstance1 = new SubClass() ; // var supervalue = subinstance1.getSuperValue() ; // var subvalue = subinstance1.getSubValue() ; // console.log('supervalue:', supervalue) ; // console.log('subvalue:', subvalue) ; // console.log('--------------------') ; // // 通过“instance”关键字来查看该对象是否是某个类的实例 // console.log('subinstance1 instanceof(SuperClass):', subinstance1 instanceof(SuperClass)) ; // console.log('subinstance1 instanceof(SubClass):', subinstance1 instanceof(SubClass)) ; // console.log('SubClass instanceof(SuperClass):', SubClass instanceof(SuperClass)) ; // console.log('SubClass.prototype instanceof(SuperClass):', SubClass.prototype instanceof(SuperClass)) ; // console.log('subinstance1 instanceof(Object):', subinstance1 instanceof(Object)) ; /** * 类式继承--案例2: */ // 声明父类 function SuperClass() { this.books = ['JavaScript', 'HTML', 'CSS'] ; } ; // 声明子类 function SubClass() {} ; // 继承父类 SubClass.prototype = new SuperClass() ; var subinstance1 = new SubClass() ; var subinstance2 = new SubClass() ; console.log('subinstance2.books:', subinstance2.books) ; subinstance1.books.push('Java') ; console.log('subinstance2.books:', subinstance2.books) ; /** * 缺陷: * 1、修改其中一个实例,会影响另一个实例, * 2、无法向父类传递参数 */ </script> </body>
相关文章推荐
- 设计模式知识连载(6)---继承_2:创建即继承-构造函数继承
- 设计模式知识连载(9)---继承_5:如虎添翼-寄生式继承
- js原生设计模式——2面向对象编程之继承—原型继承(类式继承的封装)
- 设计模式知识连载(11)---继承_7:多继承
- 设计模式知识连载(39)---数据访问对象模式---本地存储DAO
- 设计模式知识连载(39)---数据访问对象模式---MongoDB
- 设计模式知识连载(10)---继承_6:终极继承者-寄生组合式继承
- Javascript继承1:子类的的原型对象----类式继承
- 设计模式知识连载(7)---继承_3:优点结合-组合继承
- 设计模式知识连载(4)---封装_3:创建对象的安全模式
- 设计模式----优先使用对象组合,而非类继承
- js创建对象的构造函数模式+原型模式和组合继承\Hybrid Pattern & combination inheritance
- 面向对象原则的要点知识与设计模式
- java设计模式---Prototype Pattern---原型模式(复制建立对象)
- 可复用面向对象软件基础——设计模式(六)之原型模式
- 设计模式深入浅出(二)对象创建——Builder,原型,单例
- 设计模式知识连载(13)---简单工厂模式:
- 设计模式知识连载(14)---工厂方法模式:
- 设计模式 3.4 Prototype(原型)-对象创建模式
- Javascript乱弹设计模式系列(0) - 面向对象基础以及接口和继承类的实现