原型继承 原型链 闭包 - GitJavaProgramming/js_test GitHub Wiki

原型继承与原型链

ECMAScript中没有函数签名,它主要通过原型链来实现继承

构造函数、原型与实例的关系

每个构造函数都有一个原型对象(prototype)
原型对象都包含一个指向构造函数的指针(constructor)
每个实例都包含一个指向原型对象的内部指针(Firefox中指针属性名是 __proto__)
如果让prototype等于另一个对象的实例,那么原型对象将包含一个指向另一个原型的指针,本质是重写了原型对象,代之以
新类型的实例(原型链) 
所有函数的默认原型都是Object的实例,因此默认原型都会包含一个内部指针,指向Object.prototype。这也正是所有自定义类型
都会继承toString()、valueOf()等默认方法的根本原因。
当读取一个实例属性时,首先在实例中搜索,没有找到就会继续搜索实例的原型,在通过原型链实现继承的情况下,搜过过程会
沿着原型链继续向上直到Object。
参考 prototype_chain.js // JavaScript高级程序设计 ch6.2 继承 p131 

闭包