注意__proto__只有在firefox下有效。
prototype chain就是说继承链。JavaScript用这种方式来实现继承。
以下例子在firebugs下完成:
>>> function Hero(){this.name = "name"}
>>> Hero.__proto__
function()
>>> Hero.__proto__.__proto__
Object
>>> Hero.__proto__.__proto__.__proto__
null
>>> var t = new Hero()
>>> t.__proto__
Object
>>> t.__proto__.__proto__
Object
>>> t.__proto__.__proto__.__proto__
null
>>> function Hero2(){this.age = 23}
>>> Hero.prototype = new Hero2
Object age=23
>>> t.__proto__
Object
>>> t.__proto__.__proto__
Object
>>> t.__proto__.__proto__.__proto__
null
>>> var tt = new Hero()
>>> tt
Object name=name age=23
>>> tt.__proto__
Object age=23
>>> tt.__proto__.__proto__
Object
>>> tt.__proto__.__proto__.__proto__
Object
>>> tt.__proto__.__proto__.__proto__.__proto__
null
可以参见http://mckoss.com/jscript/object.htm中的图进行理解!我也只是稍微理解了一点点,请多指教!