js中函数也是对象,但是对象也是函数构造出来的?那么问题来了,js中先有对象还是函数呢?
1 回答
白衣染霜花
TA贡献1796条经验 获得超10个赞
谁说对象都是函数构造出来的?
所有对象都不是函数构造出来的!
对象是由JavaScript运行时环境以原型对象为模板,直接产生出来的。构造函数只是以新生的对象为this,做一些初始化操作。
所以,不要以为var p = new Person()
说明了p是由Person产生的,其实是由Person.prototype产生的。
至于先有函数还是先有对象,这不是个问题。因为那些最基本的内置对象,肯定是由JavaScript运行时环境直接生成的,不适用通常的对象产生规则。比如Object.prototype、Object、Function.prototype等,它们的产生没有先后顺序。有了这些基本对象后,就可以按照JS的规则产生其他对象了。
个人观点,仅供参考。要想知道真实情况,还是去读一下V8源码吧。
添加回答
举报
0/150
提交
取消