自己做报名网站教程,广西玉林网站建设,手机网站建站公司有哪些,做设计在哪个网站找图片大全在Javascript中#xff0c;prototype和__proto__是两个重要的概念#xff0c;在对象的原型链中扮演重要的角色。 prototype
prototype是js函数的内置属性#xff0c;每个函数都有一个prototype属性#xff0c;它是一个指针#xff0c;指向一个对象#xff08;原型对象prototype和__proto__是两个重要的概念在对象的原型链中扮演重要的角色。 prototype
prototype是js函数的内置属性每个函数都有一个prototype属性它是一个指针指向一个对象原型对象。这个对象包含了所有实例对象new的公共属性和方法。通过修改prototype对象的属性可以为所有基于该构造函数的实例添加新的方法或属性。这种机制是js实现集成的主要方法之一。
__proto__
__proto__是对象的内置属性它指向该对象的原型对象。这个属性在ES标准定义中的名字应该是[[Prototype]],但是由于历史原因和浏览器兼容性考虑js为对象添加了__proto__属性以方便访问和修改原型链。proto__并不是js语言本身的特性而是各大厂商约定的私有属性。不建议在项目中直接使用__proto推荐使用Object.getPrototypeOf()方法获取实例对象的原型。当访问一个对象的属性时如果内部没有该属性就会在它的__proto__属性所指的那个父对象去找父对象没有再去父对象的父对象里找知道null,即原型链的末端。
prototype和__proto__的联系和区别
prototype与__proto__都指向原型对象任意一个函数包括构造函数都有一个prototype属性指向该函数的原型对象。任意一个构造函数的实例化对象都有一个__proto__属性它指向构造函数new的原型对象prototype.prototype属性是函数独有的而__proto__是每个对象都有的包括实例对象、函数。prototype的作用是保存所有实例公共的属性和方法__proto__的作用是当访问一个对象的属性时如果内部没有该属性就回去它的__proto__属性所指的那个父对象去找。 总结 通过理解这两个概念可以帮助我们更好的掌握js的继承和原型链机制原型是js面向对象编程的核心之一。