• js原生设计模式——2面向对象编程之继承—call(this)构造函数式继承


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>constructorfunctionInherit</title>
        <script type="text/javascript">
        //声明父类
        function superClass(id){
            this.id = id;
            this.books = ['html','css','js'];
        }
        superClass.prototype.getBooks = function(){
            console.log(this.books);
        }
        //声明子类
        function subClass(id){
            superClass.call(this,id);//让子this指向父this,后面带的是父类需传入的参数id
        }
        // subClass.prototype.getSubName = function(){
        //     console.log(this.id);
        // }
        //实例化对象测试
        var test1 = new subClass(1);
        var test2 = new subClass(2);
        test2.books.push('php');//test2插入的数据'php'不影响test1

        console.log(test1.id);      //1
        console.log(test1.books);   //["html", "css", "js"]
        console.log(test2.id);      //2
        console.log(test2.books);   //["html", "css", "js", "php"]
        //注:构造函数式继承是访问不到父原型链上的属性和方法的
        test1.getBooks();   //报错:undefined is not a function

        //本例已经通过验证
        </script>
    </head>
    <body>
        
    </body>
    </html>

  • 相关阅读:
    性能战术
    易用性
    可操作性
    软件架构师如何工作
    idea安装
    Windows下安装TensorFlow
    进度十四(11.01)
    进度十三(10.31)
    进度十二(10.30)
    进度十一(10.29)
  • 原文地址:https://www.cnblogs.com/koleyang/p/4936580.html
Copyright © 2020-2023  润新知