ES6 原型链

原型链

 

原型对象:将构造函数*有的属性和方法添加到构造函数的原型对象中,所有的对象实例就可以访问这些方法。


实例化对象时都会有一个共有__proto__属性指向构造函数的prototype原型对象。之所以我们的对象可以使用构造函数的prototype原型对象的属性和方法,就是因为我们实例化对象有__proto__的存在。构造函数的prototype和实例化对象的__proto__是等价的

方法的查找规则:

首先看实例化对象的有没有该方法,如果有则。。。如果没有就去查看

在对象原型__proto__和构造函数prototype 原型对象里面都有一个constructor属性,constructor指回构造函数本身。主要用于记录该对象引用了哪个构造函数,他可以让原型对象重新指向原来的构造函数。如果修改原来的原型对象,给原型对象赋值的是一个对象,则必须手动利用constructor指回原来的构造函数。

 Star.prototype = {
            // 如果我们修改了原来的原型对象,给原型对象赋值的是一个对象,则必须手动的利用constructor指回原来的构造函数
            constructor: Star,
            sing: function() {
                console.log('我会唱歌');
            },
            movie: function() {
                console.log('我会演电影');
            }
        }

构造函数、实例、原型对象的关系、

ES6 原型链

原型链的查找规则

上一篇:原型相关知识


下一篇:用prototype和直接扩展方法/属性的区别, 以及constructor构造器用法