zoukankan      html  css  js  c++  java
  • 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>

  • 相关阅读:
    关于C#中timer类 (转)
    AutoResetEvent (转)
    给韬哥的回复
    sql中的case when 的用法涉及到大于小于号
    vba中获取当前日期
    vba中的小技巧
    sql server2000中的两个整数相除保留十位小数
    vba中新建文件,关闭文件,锁屏,覆盖同名文件
    无法切换到google.com的解决办法
    mysql 常用命令
  • 原文地址:https://www.cnblogs.com/koleyang/p/4936580.html
Copyright © 2011-2022 走看看