• JavaScript原型及原型链


    代码一:

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <script>
            function Car (desc) {
                this.desc = desc;
                this.color = "red";
            }
    
    //        Car.prototype = {
            //            getInfo: function() {
            //                return 'A ' + this.color + ' ' + this.desc + '.';
            //            }
            //        };
            //instantiate object using the constructor function
            var car=new Car("bmw");
    //        var car =  Object.create(Car.prototype);
    //        console.log(car.getInfo());
            console.log(car instanceof  Car);
            console.log(car.color);
            console.log(car.desc);
        </script>
    </head>
    <body>
    
    </body>
    </html>


    以上code输出结果为:  

    true
    red
    bmw

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <script>
            function Car (desc) {
                this.desc = desc;
                this.color = "red";
            }
    
    //        Car.prototype = {
            //            getInfo: function() {
            //                return 'A ' + this.color + ' ' + this.desc + '.';
            //            }
            //        };
            //instantiate object using the constructor function
    //        var car=new Car("bmw");
            var car =  Object.create(Car.prototype);
    //        console.log(car.getInfo());
            console.log(car instanceof  Car);
            console.log(car.color);
            console.log(car.desc);
        </script>
    </head>
    <body>
    
    </body>
    </html>
    

     以上code输出结果:

    true

    undefined

    undefined


    问题来了:

    通过new+构造函数构建实例,实例能访问构造函数的属性

    通过Object.create(prototype)构建实例时,实例对象不能访问构造函数的属性

    以上结果出现的理论依据在哪里。找出来

  • 相关阅读:
    Java并发之线程管理(线程基础知识)
    spring aop使用
    java动态代理
    java深拷贝与浅拷贝
    装饰模式(也叫包装模式)
    Spring基于XML方式的使用
    javaWeb域对象
    静态代理和动态代理
    getAnnotation的一个坑
    (转)文件上传org.apache.tomcat.util.http.fileupload.FileUploadException: Stream closed
  • 原文地址:https://www.cnblogs.com/web-coding/p/4720776.html
Copyright © 2020-2023  润新知