zoukankan      html  css  js  c++  java
  • javascript内部原理篇[javascript实现继承]

    javascript的面向对象并非新鲜事务,现在简单模拟OOP实现继承

    /**
     * 继承
     */
    (function(){
        //创建一个人员类
        function Person(name){
            this.name = name;
        }
        //创建一个Teacher类
        function Teacher(name, books){
            //call方法可以让一个函数的对象上下文从初始化变为由this来决定
            //调用Person的构造函数,因为Person没用new 所以是个空对象
            //相当于java中的super函数
            Person.call(this, name);
            this.books = books;
        }
    
        /**
         * 创建extend函数为了所有的继承操作
         */
        function extend(subClass, superClass){
            //叫子类原型类属性等于父类原型类属性
            subClass.prototype = new superClass();
            subClass.prototype.constructor = subClass;
    
            //为了以后能够方便调用,也就是说在不知父类名称的情况下,可以直接调用
            //我们增加以下语句
            subClass.superClass = superClass.prototype;
    
        }
        function Author(name,books){
            //Author.superClass.constructor.call(this,name);
            //继承,将name属性的赋值方式在本类中继承
            Author.superClass.constructor.call(this,name);
            //Person.call(this,name);
            this.books = books;
            this.getBook = function(){
                return this.name +" "+ this.books;
            }
        }
        extend(Author, Person);
        var peter = new Author("123","JAVASCIPT");
        alert(peter.getBook())
    })();


  • 相关阅读:
    MongoDB初探-基本语句和数据结构
    Restful API学习Day5
    Restful API学习Day4
    毕业设计记录1
    解决python爬虫requests.exceptions.SSLError: HTTPSConnectionPool(host='XXX', port=443)问题
    java调用python代码
    mysql使用唯一索引避免插入重复数据
    阅读笔记16
    阅读笔记15
    阅读笔记14
  • 原文地址:https://www.cnblogs.com/sunyingyuan/p/3686273.html
Copyright © 2011-2022 走看看