JavaScript中的prototype和_proto_的关系是什么
2023-12-24 14:42:05
JavaScript中的prototype和_proto_的关系是什么
__proto__
是 JavaScript 中对象的一个内部属性,它指向该对象的原型。JavaScript 中每个对象都有一个__proto__
属性,通过它可以访问对象的原型。prototype
是函数对象特有的属性,每个函数都有一个prototype
属性,它指向一个对象,这个对象就是该函数的原型(这个原型对象包含了实例共享的方法和属性)。
? 当使用 new 关键字创建一个实例时,这个实例的 __proto__
就指向了构造函数的 prototype
,这样一来,实例就可以访问构造函数原型对象上定义的方法和属性。
? 简而言之,__proto__
是对象上的属性,而prototype
是函数对象上的属性。它们的关系在于:
? 1、对象实例的 proto 属性指向其构造函数的 prototype。
? 2、对象可以通过 proto 属性访问到原型链上的其他对象,包括 Object.prototype。
? 3、函数对象的 prototype 属性用于定义构造函数的原型对象,这个原型对象包含了实例共享的方法和属性
1.一个重要的内置关系:
VueComponent.prototype.__proto__ === Vue.prototype
(这个vue原型对象包含了实例共享的方法和属性。)2.为什么要有这个关系:让组件实例对象(vc)可以访问到 Vue实例的原型上的属性、方法。
//定义一个构造函数
/* function Demo(){
this.a = 1
this.b = 2
}
//创建一个Demo的实例对象
const d = new Demo()
console.log(Demo.prototype) //显示原型属性
console.log(d.__proto__) //隐式原型属性
console.log(Demo.prototype === d.__proto__) //这里返回的就是true
//程序员通过显示原型属性操作原型对象,追加一个x属性,值为99
Demo.prototype.x = 99
文章来源:https://blog.csdn.net/qq_45925197/article/details/135181354
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!