前端必学原形对象prototype和原形链

在ES5中,通过构造函数和prototype实现类的功能,构造函数用于设置实例属性,而将方法添加到prototype上,使得所有实例都能访问。proto属性连接实例和构造函数的prototype,形成原型链,这样实例就能调用构造函数的prototype上的方法。constructor属性则指向构造函数本身。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先我们由需求引出

(一)需求 ES6之后我们用类来实例化对象  ES5时候呢?怎么实现和类一样的功能

解决这个需求我们有2个要解决 1.类实例化的对象有属性方法---怎么实现

我们有构造函数 ,通过构造函数创建对象

function Star(Name,Age) {              

this.Name = Name;

this.Age = Age;

sing = function() {}

}

var ldh = new Star("刘德华",41);

ldh.Age 就实现了属性的调用

(二)类方法的调用呢?

新的需求 我们实例化多个对象 创建所有对象都可以调用的方法

prototype的引入 

prototype是一个对象里面都有的属性 他是一个对象

只要给这个对象赋予方法 那么所有通过构造函数实例化的对象就可以调用这个方法了

Star.prototype.sing =  function(){}

那么 为什么通过构造函数实例化的对象就可以调用这个方法?

因为构造函数有个默认属性proto ---指向这个构造函数的prototype(原形对象)

proto属性会给所有构造函数实例化的对象

prototype对象里面还有个属性constructor ---直接指向对应的构造函数

然后我们根据各个对象之间的关系

 这种对象之间通过proto属性查找的链子就称为原型链


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值