javascript的类型系统:
在javascript中有五种简单类型(Number、Boolean、String、null、undefined)和一种复杂类型Object的数据(复杂类型也包括function类型,不过function类型从技术角度来讲和Object类型类似),javascript中不支持如Class Person{}这样的自定义类型,但是由于javascript中声明任何的function类型的数据实质等于 new Function(实质上Function的类型也是function),而且new Function创建的数据也是function类型的(除了Function,任意对其他类型的构造函数应用new操作符,实质都创建一个object类型的数据),所以在javascript中自定义function类型的构造函数,并且使用new操作符进行实例化,总是能创建出能满足使用需求的‘object’类型的自定义类型(好吧,说法上矛盾了),并且默认情况下,创建的数据的内部prototype属性总是指向Object(注意:这里的Object和构造函数Object并不是一回事儿),但是定义构造函数是一般会改写prototype的定义,如Function.prototype= function empty(){},所以可以把javascript中不同的“自定义类型”看做是不同的内部prototype指向和不同的成员的object类型的数据。
浙公网安备 33010602011771号