Javascript继承1:子类的的原型对象----类式继承

//声明父类
function Parent(){
    this.parentValue = true;
    this.favorites = [‘看书‘]
}
//为父类添加公有方法
Parent.prototype.getParentValue = function(){
    return this.parentValue;
}
//声明子类
function Child(){
    this.childValue = false;
}
// 继承父类
Child.prototype =  new Parent()
//为子类添加方法
Child.prototype.getChildValue = function(){
    return this.childValue;
}

var instance = new Child()
console.log(instance.getParentValue())  //true
console.log(instance.getChildValue())   //false
/*
*注:使用instanceof检测某个对象是否是某个某个类的实例,
*    或者说某个对象是否继承了某个类
*/
console.log(instance instanceof Parent) //true
console.log(instance instanceof Child)  //true
console.log(Child instanceof Parent)    //false 为何?Child的原型继承了父类

console.log(Child.prototype instanceof Parent) //true
/*
*缺点:一个子类改变继承于父类的公有属性,其他子类会受到影响
*    如何避免??下一小节
*/
var child1 = new Parent()
var child2 = new Parent()
console.log(child2.favorites) //[‘看书‘]
child1.favorites.push(‘旅游‘)
console.lof(child2.favorites) //[‘看书‘,‘旅游‘]

设计模式中的经典笔录

原文地址:https://www.cnblogs.com/-walker/p/9737375.html

时间: 2024-10-12 16:33:26

Javascript继承1:子类的的原型对象----类式继承的相关文章

JS面向对象组件 -- 继承的其他方式(类式继承、原型继承)

继承的其他形式: •类式继承:利用构造函数(类)继承的方式 •原型继承:借助原型来实现对象继承对象 类 : JS是没有类的概念的 , 把JS中的构造函数看做的类 要做属性和方法继承的时候,要分开继承. function Aaa(){ //父类 this.name = "小明"; } Aaa.prototype.showName = function(){ alert( this.name ); }; function Bbb(){ //子类 } Bbb.prototype = new

JS原型继承和类式继承

类式继承(构造函数) JS中其实是没有类的概念的,所谓的类也是模拟出来的.特别是当我们是用new 关键字的时候,就使得"类"的概念就越像其他语言中的类了.类式继承是在函数对象内调用父类的构造函数,使得自身获得父类的方法和属性.call和apply方法为类式继承提供了支持.通过改变this的作用环境,使得子类本身具有父类的各种属性. JavaScript var father = function() { this.age = 52; this.say = function() { al

javascript类式继承

javascript中是没有类这个概念的,但是javascript有它自己的原型机制,我们可以通过原型机制(prototype,constructor)来伪一个类出来,俗称“伪类”. 新函数对象被创建时,会被赋予一个prototype属性,它的值是一个包括constructor属性,且属性值为该新函数的对象,用代码来解释就是: Cat.prototype.constructor = Cat 介绍javascript原型机制的文章博客园有很多,可以自己找来看看哦. 构建伪类的第一步是定义一个构造器

原型继承和类式继承

类式继承(构造函数) JS中其实是没有类的概念的,所谓的类也是模拟出来的.特别是当我们是用new 关键字的时候,就使得“类”的概念就越像其他语言中的类了.类式继承是在函数对象内调用父类的构造函数,使得自身获得父类的方法和属性.call和apply方法为类式继承提供了支持.通过改变this的作用环境,使得子类本身具有父类的各种属性. var father = function() { this.age = 52; this.say = function() { alert('hello i am

精读JavaScript模式(八),JS类式继承

一.前言 这篇开始主要介绍代码复用模式(原书中的第六章),任何一位有理想的开发者都不愿意将同样的逻辑代码重写多次,复用也是提升自己开发能力中重要的一环,所以本篇也将从“继承”开始,聊聊开发中的各种代码复用模式. 其实在上一章,我感觉这本书后面很多东西是我不太理解的,但我还是想坚持读完,在以后知识逐渐积累,我会回头来完善这些概念,算是给以前的自己答疑解惑. 二.类式继承VS现代继承模式 1.什么是类式继承 谈到类式继承或者类classical,大家都有所耳闻,例如在java中,每个对象都是一个指定

js原生设计模式——2面向对象编程之继承—new类式继承

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>classInherit</title>    <script type="text/javascript">    //声明父类    function superClass(){        this.name

继承有类式继承,构造函数继承人,组合继承

1:类式继承: // 声明父类 function Parent(){ this.parentValue = true; } // 为父类添加共有方法 Parent.prototype.getParentValue = function(){ return this.parentValue; } // 声明子类 function Child(){ this.childValue = false; } // 继承父类 Child.prototype = new Parent(); // 为子类添加共

JavaScript ES5类 原型 原型链 组合、原型、寄生式继承

ES5类 原型  原型链 继承 JavaScript中,原型是相对于构造函数(类)的叫法(或者说概念),原型链是相对于构造函数(类)的实例对象的叫法. 对于JavaScript对象,如果在对象自身上找不到该属性,那么就会向上沿着原型链继续查找该属性 创建一个ES5类 在ES5中,类是由函数名首字母大写的函数,通过关键字new创建的. 类的构造函数就是函数自身 一般情况下,ES5类的原型对象prototype是自身构造函数,该类的实例化对象的原型链对象__proto__也是该构造函数,这二者指向同

算法-javascript自实现继承extend(单次继承原型对象和单次继承构造函数)

# 自实现继承(单次继承构造函数)  //父类的构造函数   function Father(name,age){    this.name=name    this.age=age   }      //父类的原型对象   Father.prototype={    constructor:Father,    say:function(){     console.log('i am '+this.name+' ,'+this.age+' years old')    }   }