js中的原型和原型链

原型是JavaScript中实现继承的关键,每个对象都有隐式原型(proto)和显式原型(prototype)。显式原型是构造函数的.prototype属性,而隐式原型是实例对象自动指向构造函数的prototype。原型链允许通过对象的prototype属性查找属性和方法,实现继承。ES5的继承方式包括直接赋值显式原型导致的问题以及通过实例化对象实现继承的策略。
摘要由CSDN通过智能技术生成
什么是原型?

在JavaScript中,原型(prototype)是一个对象,用于存储其他对象继承它的属性和方法。每个JavaScript对象都具有一个指向其原型的内部链接,它可以从其原型继承属性和方法。通常,当您尝试访问对象的属性或方法时,如果该对象本身没有该属性或方法,则会在其原型上查找该属性或方法。这使得原型成为实现继承和代码重用概念的重要方式。

在对象中存在的原型称为隐式原型
在函数中存在的原型称为显式原型

显式原型和隐式原型的区别?

在Javascript中,每个对象都有一个隐式原型 (proto) 属性和一个显式原型 (prototype) 属性。

其中,显式原型是通过构造函数的 .prototype 属性创建的,它是一个指向包含该构造函数原型属性和方法的对象的指针。

隐式原型是实例化对象时,自动指向构造函数的原型prototype属性(即其显式原型)的指针。

什么是原型链?

原型链是指在对象中通过prototype 不断寻找属性的链条, 在本身没有找到就会不断地沿着原型链往父级对象查找形成一条原型链,从而实现继承

继承的ES5历史
  1. 通过直接将父类的显式原型赋给子类
    问题:会使得父子的显式原型都是同一个,改一个动全部

  2. 通过创建父类的实例对象,通过这个对象来实现继承
    问题:会多次调用函数

  3. 子类对象的隐式原型直接指向父类的新建对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值