js原型链初讲

我们在讲原型链前我们先把下面两个东西复习一下
原型(prototype)
以前我们都说万物皆对象

现在所有的对象都是通过new 构造函数创建的

所有的函数都有一个属性,prototype被称为函数原型

在默认的情况下,prototype是一个普通的对象,在prototype中有一个属性constructor,它也是一个对象,它指向构造函数本身

原型的应用
1.Object.getPrototypeOf(对象) 获取对象的隐式原型

2.对象 instanceof 构造函数 判断对象是否是这个函数构造出来的

3.Object.prototype.isPrototypeOf(对象) 判断Object.prototype是否在指定对象的原型链上

4.Object.Create(对象) 创建一个新对象,将新对象的隐式原型指向对象

5.Object.hasOwnProperty(属性) 判断属性是否是对象自身的属性

隐式原型(proto)
所有的对象都有一个属性__ proto__

在默认情况下,隐式原型指向创建该对象构造函数的原型

当查找一个对象成员时,看该对象自身是否拥有这个属性,如果有则直接使用。若没有则在原型链上依次查找是否拥有该属性,如果有则直接使用

原型链
每一个对象都有隐式原型,隐式原型指向形成的链条,就叫做原型链
Function的隐式原型指向自己的原型
Object的原型的隐式原型指向null
需要注意的地方
1
Object.prototype.___ proto___=== null

2
Function.prototype === Function.__ proto__

下面这张图就是我自己对原型链的理解所画的图(通俗易懂)
在这里插入图片描述
原型链的应用
主要用于继承,其实就是为了代码复用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值