其中Function、Object是JavaScript的内建类,JavaScript的类实际上是一个function
而function对象会凭空多出一个prototype属性
这就是一切困扰的起源
凡是function类型的对象,constructor都指向Function,包括Function自己
凡是function类型的对象,原型(__proto__)都指向Function.prototype包括Function自己
一切function都是Function类的实例,Function又是继承自Object。而Object也是一个function。
function对象默认会自带一个prototype属性,这个属性是一个Object类型,一般该属性对象都能从其__proto__属性去寻找父类,唯独Object.prototype的__proto__属性是null
当然由于JavaScript的动态性质,这一切都可以改变,你可以任意更改属性的指向,为所欲为。
比如说,把一个function对象的prototype删除掉,那么就无法继承这个对象了。系统中的Proxy就是这种货色。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有