这一章其实算是javascript的科普文章,其实这本书的读者一般都不会是入门者,因此按道理说应该不需要再科普才对。但是作者依旧安排了这一章,证明就是这一章内容与我们以为的对象不一样。
Javascript中一切皆对象
这一句话大家应该耳熟能详,对于常规的字面量对象,和new出来的对象,大家应该都能分辨
const str = ''
const str2 = new String()
const obj = {}
const obj2 = Object.create()
但是根据ECMA,在javascript中其实分为2种对象:常规对象和异质对象。任何不属于常规对象的都叫异质对象。
在javascript的世界中,函数也是一个对象。当我们指向Obj.foo
时,其实就会调用对象内部[[Get]]
方法去获取这个值,在ECMA中规定了如下内部方法(网图)。所以
比如Array
,当我们把Array.lenght = 0
,它会清空数组。