1.   我们先看JS类的继承
  1.  <!DOCTYPE html>
    <html> <head>
    <meta charset="UTF-8">
    <title>JS类的继承</title>
    </head> <body>
    /* -- 类式继承 -- */
    <script type="text/javascript">
    //先声明一个超类
    var Animal = function(name) {
    this.name = name;
    }
    //给这个超类的原型对象上添加方法
    Animal.prototype.Eat = function() {
    console.log(this.name + " Eat");
    };
    //实例化这个超
    var a = new Animal("Animal"); //再创建构造函数对象类
    var Cat = function(name, sex) {
    //这个类中要调用超类Animal的构造函数,并将参数name传给它
    Animal.call(this, name);
    this.sex = sex;
    }
    //这个子类的原型对象等于超类的实例
    Cat.prototype = new Animal();
    //因为子类的原型对象等于超类的实例,所以prototype.constructor这个方法也等于超类构造函数 console.log(Cat.prototype.constructor);
    //这个是Animal超类的引用,所以要从新赋值为自己本身
    Cat.prototype.constructor = Cat;
    console.log(Cat.prototype.constructor);
    //子类本身添加了getSex 方法
    Cat.prototype.getSex = function() {
    return this.sex;
    }
    //实例化这个子类
    var _m = new Cat('cat', 'male');
    //自身的方法
    console.log(_m.getSex()); //male
    //继承超类的方法
    console.log(_m.Eat()); //cat
    </script>
    </body> </html>
  2.   我们再看JS原型继承
     <!DOCTYPE html>
    <html> <head>
    <meta charset="UTF-8">
    <title>JS原型继承</title>
    </head> <body>
    <!--原型继承-->
    <script type="text/javascript">
    //clone()函数用来创建新的类Person对象
    var clone = function(obj) {
    var _f = function() {};
    //这句是原型式继承最核心的地方,函数的原型对象为对象字面量
    _f.prototype = obj;
    return new _f;
    } //先声明一个对象字面量
    var Animal = {
    somthing: 'apple',
    eat: function() {
    console.log("eat " + this.somthing);
    }
    }
    //不需要定义一个Person的子类,只要执行一次克隆即可
    var Cat = clone(Animal);
    //可以直接获得Person提供的默认值,也可以添加或者修改属性和方法
    console.log(Cat.eat());
    Cat.somthing = 'orange';
    console.log(Cat.eat()); //声明子类,执行一次克隆即可
    var Someone = clone(Cat);
    </script>
    </body> </html>
  3. 我们可以试验一下,JS类的继承 children.constructor==father 返回的是true,而原型继承children.constructor==father 返回的是false;

JS原型继承与类的继承的更多相关文章

  1. JS原型继承和类式继承

    前言 一个多月前,卤煮读了一篇翻译过来的外国人写的技术博客.此君在博客中将js中的类(构造)继承和原型继承做了一些比较,并且得出了结论:建议诸位在开发是用原型继承.文中提到了各种原型继承的优点,详细的 ...

  2. JS原型,原型链,类,继承,class,extends,由浅到深

    一.构造函数和原型 1.构造函数.静态成员和实例成员 在ES6之前,通常用一种称为构造函数的特殊函数来定义对象及其特征,然后用构造函数来创建对象.像其他面向对象的语言一样,将抽象后的属性和方法封装到对 ...

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

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  4. js原生继承之——类式继承实例(推荐使用)

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  5. js原型链理解(4)-经典继承

    经典继承就是组合继承,就是组合构造函数和原型链的优点混合继承. 1.避免引用类型的属性初始化 2.避免相同方法的多次初始化 function Super(name){ this.ages = [100 ...

  6. java类为什么是单继承。类的继承,实现接口。

    java中提供类与类之间提供单继承. 提供多继承会可能出现错误,如:一个类继承了两个父类,而两个父类里面都有show()方法. class Fulei1{ public void show(){ Sy ...

  7. java继承2——类与继承(转)

    一.你了解类吗? 在Java中,类文件是以.java为后缀的代码文件,在每个类文件中最多只允许出现一个public类,当有public类的时候,类文件的名称必须和public类的名称相同,若不存在pu ...

  8. JavaScript 类式继承与原型继承

    交叉着写Java和Javascript都有2年多了,今天来总结下自己所了解的Javascript类与继承. Javascript本身没有类似Java的面向对象的类与继承术语,但其基于原型对象的思想却可 ...

  9. js类的继承

    1.类式继承 首先要做的是创建构造函数.按惯例,其名称就是类名,首字母应该大写.在构造函数中,创建实例属性要用关键字this .类的方法则被添加到prototype对象中.要创建该类的实例,只需结合关 ...

随机推荐

  1. Express入门介绍vs实例讲解

    下午在团队内部分享了express相关介绍,以及基于express的实例.内容提纲如下. 什么是Express 为什么要用Express 路由规则 一切皆中间件 实例:Combo Applicatio ...

  2. linux下tomcat指定jdk和配置运行参数

    一.指定运行jdk 1)set classpath.sh和catalina.sh中写入: export JAVA_HOME=/usr/local/java/jdk1.8.0_121 export JR ...

  3. linux 操作 mysql 指定端口登录 以及启动 停止

    linux 操作 mysql 指定端口登录 mysql -uroot -p -h10.154.0.43 -P3341 1.查看mysql版本方法一:status;方法二:select version( ...

  4. Notes of Daily Scrum Meeting(12.18)

    前期落下的进度我们会在周六周日赶一下,在编译课程设计中期测试之后集中处理项目中的问题. 今天的任务总结如下: 团队成员 今日团队工作 陈少杰 调试后端连接的部分,寻找bug 王迪 测试搜索功能,修改b ...

  5. 10慕课网《进击Node.js基础(一)》初识promise

    首先用最简单的方式实现一个动画效果 <!doctype> <html> <head> <title>Promise animation</titl ...

  6. Java单元测试框架 JUnit

    Java单元测试框架 JUnit JUnit是一个Java语言的单元测试框架.它由Kent Beck和Erich Gamma建立,逐渐成为源于KentBeck的sUnit的xUnit家族中为最成功的一 ...

  7. IOS的开发演变历史

    对IOS开发平台一直抱有很大兴趣,正好通过这个机会好好了解一下IOS的开发历程! 通过一些查阅,我了解到IOS的开发平台主要是依靠Xcode软件来编写程序,同时又需要在MAC OS X的环境下运行,w ...

  8. mysql左外连接

    左外连接的概念性不说了,这次就说一说两个表之间的查询步骤是怎么样的? 例如 SELECT ut.id,ut.name,ut.age, ut.sex,ut.status,st.score,st.subj ...

  9. wc 统计程序

    WC项目要求 这个项目要求写一个命令行程序,模仿已有的wc.exe的功能,并加以扩充,给出某程序设计源语言文件的字符数.单词数和行数.给实现一个统计程序,它能正确统计程序文件的字符数.单词数.行数,以 ...

  10. webSocket开发chat application过程

    本次使用websocket开发chat的功能已经接近尾声,等到压力测试结束之后就可以上线了.在此记录一下整个开发过程. ---------------------------------------- ...