• JS高级---继承


    继承

    面向对象编程思想: 根据需求, 分析对象, 找到对象有什么特征和行为, 通过代码的方式来实现需求, 要想实现这个需求,就要创建对象 ,要想创建对象, 就应该显示有构造函数, 然后通过构造函数来创建对象, 通过对象调用属性和方法来实现相应的功能及需求, 即可
     

    需注意

    首先,JS不是一门面向对象的语言, JS是一门基于对象的语言, 那么为什么学习js还要学习面向对象, 因为面向对象的思想适合于人的想法, 编程起来会更加的方便,及后期的维护....
    面向对象的编程语言中有类(class)的概念(也是一种特殊的数据类型), 但是JS不是面向对象的语言, 所以, JS中没有类(class), 但是JS可以模拟面向对象的思想编程, JS中会通过构造函数来模拟类的概念(class)
     

    面向对象的特性:封装,继承,多态

    封装: 就是包装

    一个值存储在一个变量中--封装
    一坨重复代码放在一个函数中--封装
    一系列的属性放在一个对象中--封装
    一些功能类似的函数(方法)放在一个对象中--封装
    好多相类似的对象放在一个js文件中---封装
     
     

    继承: 

    首先继承是一种关系,类(class)与类之间的关系, JS中没有类, 但是可以通过构造函数模拟类, 然后通过原型来实现继承
    继承也是为了数据共享,js中的继承也是为了实现数据共享
    原型作用之一:数据共享,节省内存空间
    原型作用之二:为了实现继承
     
    继承是一种关系:
    父类级别与子类级别的关系
     

    多态:

    一个对象有不同的行为, 或者是同一个行为针对不同的对象, 产生不同的结果, 要想有多态, 就要先有继承, js中可以模拟多态, 但是不会去使用, 也不会模拟

     
     

    继承例子:

        //例子:
        //人,都有姓名,性别,年龄, 吃饭, 睡觉, 玩
        //学生,都有姓名,性别,年龄, 成绩, 吃饭, 睡觉, 玩 ,学习的行为
    
    
        //js中通过原型来实现继承
    
        function Person(name, age, sex) {
          this.name = name;
          this.sex = sex;
          this.age = age;
        }
        Person.prototype.eat = function () {
          console.log("人可以吃东西");
        };
        Person.prototype.sleep = function () {
          console.log("人在睡觉");
        };
        Person.prototype.play = function () {
          console.log("生活就是不一样的玩法而已");
        };
    
    
        function Student(score) {
          this.score = score;
        }
        //改变学生的原型的指向即可==========>学生和人已经发生关系
        Student.prototype = new Person("小明", 10, "男");
        Student.prototype.study = function () {
          console.log("学习很累很累的哦.");
        };
    
        //相同的代码太多,造成了代码的冗余(重复的代码)
    
        var stu = new Student(100);
        console.log(stu.name);
        console.log(stu.age);
        console.log(stu.sex);
        stu.eat();
        stu.play();
        stu.sleep();
        console.log("下面的是学生对象中自己有的");
        console.log(stu.score);
        stu.study();
    改变学生的原型的指向后==========>学生和人已经发生关系,产生原型链,则学生里面有人的属性和方法以及自己的属性和方法

     
     
  • 相关阅读:
    Jira-dashboard
    SCQA 结构化表达案例:让开场白、讲故事精彩的结构
    outlook 2016 系列1--自动回复
    outlook 2016 系列1--如何将同一回复主题的邮件放在一起
    C++ 成员限定符
    TCP/IP 协议分层
    TCP之拥塞控制
    TCP之流量控制
    TCP之滑动窗口
    TCP中的定时器
  • 原文地址:https://www.cnblogs.com/jane-panyiyun/p/12154958.html
Copyright © 2020-2023  润新知