啥是原型,啥又是原型链

lxf2023-05-15 01:25:56

啥是原型,啥又是原型链

老铁,不如听我来唠唠~

原型

1. 原型:每个函数都会自动附带一个属性prototype,这个属性的值是一个普通对象,称之为  原型对象。

2. 隐式原型:每个实例都拥有一个特殊的属性**__proto__**,称之为隐式原型,它指向构造函数的 原型。

实例

1.实例:通过new产生的对象称之为实例。

问?这些都能干啥

答:当我们访问实例成员时,先找自身,如果不存在,会自动从隐式原型中寻找。这样一来,我们可以把那些公共成员,放到函数的原型中,即可被所有实例共享。

原型链

所有的对象都是通过new来创建

//构造函数Programmer
function Programmer(name,age) {
    this.name = name
    this.age = age
    intrdouce:function() {
        console.log(`我叫${name},今年${age}岁。`)
    }
}

//实例1
var p1 = new Programmer('lingyun','20')

//实例2
var p2 = new Object()
p2.name = 'zhuangzhi'
p2.age = '18'

两种是实例是采用不同的创建方式,关系可以理解为(如图)

啥是原型,啥又是原型链

啥是原型,啥又是原型链

同时,我们也知道Object.prototype.__proto__比较特殊,固定指向null

那么,上面两幅图我们可以理解为

啥是原型,啥又是原型链

原型链:隐式原型形成了一个链条叫原型链

本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。 在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!