您的位置:首页 > 其它

设计模式知识连载(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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式 继承