js—构造函数和原型( __proto__与 prototype 原型对象)
1、构造函数的弊端:存在浪费内存的问题。
控制台:
2、原型:每一个构造函数都有一个 prototype 属性,指向另一个对象。这个 prototype 就是一个对象,这个对象的所有属性和方法,都会被构造函数所拥有。
构造函数通过原型分配的函数是所有对象所共享的;
上面的例子进行console.dir(Star);
控制台:
3、原型的作用:资源共享。
为了达到资源共享,我们需要通过原型对象来动态添加sing方法
控制台:
这时候就达到了资源共享
控制台:
实例对象原型:实例对象有一个属性 proto 指向构造函数的 prototype 原型对象。
实例对象原型__proto__和构造函数的prototype是等价的。
方法的查找规则:首先先看对象身上是否有方法,如果有就执行这个对象上的方法,如果么没有这个方法,因为有__proto__ 的存在,就去构造函数原型对象prototype身上去查找方法。
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果