对象原型

// 首先我创建一个对象和一个函数
        var aaa = {
            bbb :'ccc'
        }
        function ddd() {
            // 注意当在函数中写 let xxx = xxx 的时候,你实例这个函数的时候这个属性是不会跟着你的实例对象出现的
            this.eee = 'fff'
        }
        // 这时看一下aaa 和 ddd 打印出来有什么不同
        console.log(aaa);
        console.log(ddd);

        ![console打印图](https://upload-images.jianshu.io/upload_images/19598550-d859abc853b326d3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

        // 可以明显看到aaa继承自object而ddd是function

        // 如果想要让ddd也变成向aaa那样呢
        var ggg = new ddd()
        // 此时再看ggg
        console.log(ggg);
        // 此时ggg已经是一个对象了它的原型就是ddd而ddd又继承自object


        // 那么new到底做了什么事情呢
        // 1.创建一个新对象
        // 2.将构造函数的作用域赋值给新对象(因为this指向这个新对象)
        // 3.执行构造函数中的代码(为这个新对象添加属性)
        // 4.返回新对象

你可能感兴趣的:(对象原型)