js中的对象究竟是什么

在js中对象的都是从Object.prototype中构造出来的,而Object.prototype.__proto__ == null就说明Object是所有对象的父类,这句话的意思就是,假如现在有一个function Person(){}这样的构造函数,我对它进行实例化后它会成为Person {},很明显我把它实例化成了一个对象,js中创建对象的方法中有一个这样的方法var obj = new Object(),它执行后会创建一个对象{}这个对象的原型是__proto__: Object,这证明它的原型是Object.prototype,而之前的var obj = new Object(),证明我是以Object的原型为模板创建的对象,再回想一下MathDate()有什么区别?
Math在使用时可以直接调用其中的属性和方法这说明他是一个对象,
而Date()在使用前要先进行实例化,实例化结束后它能用调用它们的方法,这样它的话,它不就是一个构造函数么,先实例成对象在可以调用,
回归话题:函数是一个特殊的对象,既然是对象,它是不是就有可能是通过某种构造函数实例化出来的呢?
实际上就上面的function Person(){} Person.__proto__ == Function.prototype
这就说明Person实际上也是其他通过其他构造函数实例化出来的对象,那Function是什么,Function.prototype.__proto__ == Object.prototype说明Function的原型的原型和Object的原型是同一个对象,可以看出所有的对象都是通过构造函数构造出来的,例如Math.__proto__ == Object.prototype
Object是由Funtion构造而来的所以它们构造的源头是Function.prototype

文字中有些逻辑,我没有表达的很清楚,请求大佬指出          万分感谢
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值