原型&原型链

JavaScript中的每个类有显示原型prototype,每个实例具有隐式原型_proto_,它指向类的prototype。原型是函数对象内置的属性,指向原型对象,而原型对象通过_proto_指针实现继承链,构成原型链。所有对象都基于Object,原型链顶端为object.prototype._proto_=null。对象是通过引用传递的,所以修改原型会影响相关对象。
摘要由CSDN通过智能技术生成

原型关系:

每个class都有显示原型prototype

每个实例都有隐式原型_proto_

实例的_proto_指向对应class的prototype

原型:在js中,每当定义一个对象(函数也是对象)时,对象中都会包含一些预定义的属性。其中每个函数对象都有一个prototype属性,这个属性指向函数的原型对象。

原型链:函数的原型链对象constructor默认指向函数本身,原型对象除了有原型属性外,为了实现继承,还有一个原型链指针_proto_,该指针是指向上一层的原型对象,而上一层的原型对象的结构依然类似。因此可以利用_proto_一直指向object的原型对象上,而object原型对象用object.prototype._proto_ = null表示原型链顶端。如此形成了js原型链的继承。同时所有的js对象都有object的基本防范。

特点:JavaScript对象是通过引用来传递的,我们创建的每一个新对象实体中并没有一份属于自己的原型副本。当我们修改原型时,与之相关的对象也会继承这一改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值