关于JavaScript的对象的理解

JavaScript的对象可以分为狭义的和广义的对象。广义的对象由数组,狭义的对象和函数组成。

狭义的对象就是{},里面是键值对。广义的对象其实本质也是键值对。只不过声明的方式多了一些。比如new Object()。Object就是一个构造函数,既然是函数,本身也就是一个对象,可以对Object中添加方法,和狭义对象的方法一样。比如Object.test=Function (){};这时候在外部可以调用Object.test()方法,即Object对象的静态方法。

这里Object是构造函数名,但是函数也是对象啊,我估计函数本质上也是一个键值对,函数可以是构造函数Function.prototype的实例对象。所以称为Object对象。

既然是构造函数,里面是有语句的,执行完语句得到一个键值对,这又是一个对象,称为Object.prototype。这时就是一个纯粹的键值对。就是原型对象。Object.prototype也有很多方法可以调用。至于原型链,就是对象与对象之间的一条链。对象都是构造函数.prototype。继承是通过构造函数的继承来实现的,一般就是在子类中要实现父类的方法。