原型和原型链

1,对象:

是JS数据类型的一种,属于引用类型,在内存栈中存放一个地址,值存放在堆里;

一个对象是一系列属性的集合,一个属性包含一个名称和值,值可以为任一类型,包含方法和数组;

对象不仅是具备自有属性,还可以成为原型继承过来的属性,分为两大类:继承属性、自有属性;

2,原型:被继承过来的对象叫原型,继承的属性可通过构造函数的prototype对象找到。js的继承机制:原型对象的所有属性和方法,都可被实例对象共享,不仅节约内存,体现了实例对象间的联系。

对象的原型属性是用来继承属性的,原型属性在实例创建之初就设置好的,通过对象直接使用Object.prototype作为他们的原型。

每个js对象都和另一个对象相关联,另一个对象便是它的原型,每个对象都从原型继承属性。

3,__proto__和prototype只是两个key而已,我们一般研究对象的__proto__和函数的prototype。

即:对象.proto === 某函数.prototype。

js规定每个函数都有一个prototype的属性,用来指向一个对象;

所有对象都有自己的原型对象(prototype)。一方面,任何一个对象,都可以充当其他对象的原型;另一方面,由于原型对象也是对象,所以它也有自己的原型。叫做原型链。

相关推荐
geovindu3 天前
go: Prototype Pattern
开发语言·设计模式·golang·原型模式
幸运小圣3 天前
Array.prototype.reduce 全面解析【JS方法】
开发语言·javascript·原型模式
两年半的个人练习生^_^6 天前
每日一学:设计模式之原型模式
java·开发语言·设计模式·原型模式
UXbot6 天前
如何用 AI 快速生成完整的移动端 UI 界面:从描述到交付的实操教程
前端·ui·交互·ai编程·原型模式
神の愛7 天前
js的深拷贝和浅拷贝?啥情况讲解下??底层堆栈空间??object.prototype.toString.call(),还有bind,的具体使用?
前端·javascript·原型模式
W.A委员会8 天前
JS原型链详解
开发语言·javascript·原型模式
Rsun045519 天前
5、Java 原型模式从入门到实战
java·开发语言·原型模式
码云数智-大飞11 天前
JavaScript 原型链与继承机制:从底层原理到 ES6 Class 的本质
原型模式
妙蛙种子31111 天前
【Java设计模式 | 创建者模式】 原型模式
java·开发语言·后端·设计模式·原型模式
吴声子夜歌12 天前
ES6——Calss详解
javascript·es6·原型模式