JavaScript原型、原型链、继承

原型简介

写的灰常好的参考资料
这个参考资料也不错
这个可以当练习材料
原型是一个对象,其他的对象可以通过原型(_proto_)实现属性继承
prototype是函数的原型(这个是例外),但是函数也有__proto__这个属性
js中,除了null以外,其余的对象都有原型。
查看原型:

var a = [1, 2, 3];
console.dir(a);

打开浏览器,按下F12,可以看到下图
在这里插入图片描述
这里有一个结论:大多数情况下,某个对象的原型(__proto__)可以理解为构造器constructor(注意:构造器constructor是一个函数)的原型(prototype)。即a.__proto__ == a.constructor.prototype。也就是说__proto__下的方法和属性在constructor.prototype下基本都可以找到。

在这里插入图片描述

原型指向

1.字面量的创建方式

字面量的创建方式:指向constructor的原型prototype

var a = {}
	console.log(a.__proto__ === a.constructor.prototype) //true

在这里插入图片描述

2.构造函数的创建方式

构造函数的创建方式:指向创建函数的原型prototype

function test(){
		
}

var a = new test()
console.log(a.__proto__ === a.constructor.prototype) //true
console.log(a.__proto__ === test.prototype) //true

在这里插入图片描述

3.create的创建方式

create的创建方式:指向创建时的对象本身。

var c = {}
var d = Object.create(c)

console.log(d.__proto__ === d.constructor.prototype) // false,这是__proto__ === constructor.prototype的唯一例外,其他的都是适用的。
console.log(d.__proto__ == c) // true

在这里插入图片描述

原型链

由于每个对象都有__proto__属性,于是存在着一条原型链。
在这里插入图片描述

继承

参考资料1
参考资料2
参考资料3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值