• JS继承


    面向对象:

      私有属性、私有方法、特权方法、静态方法、静态属性、公共属性、公共方法、继承、闭包

    闭包:有权访问 另一个函数作用域中的变量 的函数

        因为链式作用域问题,父级可以访问子级方法内部的变量,

        将子级函数作为返回值

    继承:

      类式继承:

           父类的实例赋值给子类的原型。

           实例化父类,同时创建了父类原型,将子类原型指向声明的父类,此时子类原型可以访问父类以及父类原型。

           构造函数继承:

           在子类的构造函数作用域中执行父类的构造函数

           子类中声明添加此句 Parent.call(this,params);

      组合是继承:

           类式继承+构造函数式继承

                             还是经典的call来调用父类构造函数,将父类重新执行一遍,类似于刷新一遍,这样多个子类实例之间不受引用类型的影响。

      原型式继承:子类声明接收父类的类F,将F的原型指向进来的父类,return new F();

            将父类在子类中封装返回。

            

    <script type="text/javascript">
        function inheritObject(o)
        {
            function F(){};
            F.prototype = o;
            return new F();
        }
    
    
        var book =
            {
                name: "js book",
                alikeBook: ["css", "book", "html"]
            };
        var newbook = inheritObject(book);
        newbook.name = "newbook";
        newbook.alikeBook.push("newbook book");
    
        var obook = inheritObject(book);
        obook.name = "obook";
        obook.alikeBook.push("obook book");
    
        console.log(newbook.name);
        console.log(newbook.alikeBook);
    
        console.log(obook.name);
        console.log(obook.alikeBook);
      
    
        console.log(book.name);
        console.log(book.alikeBook);
    
    
    </script>
    View Code

      寄生式继承:是对原型式继承的封装

      寄生组合式继承:写到这,我突然发现,ES6 对继承已经做了封装,思想共统一。

           

           

  • 相关阅读:
    hibernate的获取session的两方法比较,和通过id获取对象的比较,一级缓存二级缓存
    hibernate的几个重要的类和接口
    hibernate框架配置
    c 全局变量
    其他函数-web_concurrent
    其他函数-web_get_int_property
    授权函数-web_set_certificate_ex
    授权函数-web_set_user
    动作函数-web_url
    动作函数-web_submit_data
  • 原文地址:https://www.cnblogs.com/sunchong/p/8116567.html
Copyright © 2020-2023  润新知