原型是 JavaScript 最重要的概念. 同时也是初级开发者最忌惮的内容, 原因在于网上很少有关于它的合理描述.
但事实上, 原型很简单, 你可以很轻松的掌握它的知识要点.
了解什么是原型之前, 我们先看一个示例:
- var obj = {
- };
- obj.toString(); // "[object Object]"
上面的例子中, 我们声明了一个空对象, 并没有为它添加 toString 属性方法, 但这个方法却可以被成功调用并输出. 是不是觉得很神奇?
原因在于 JavaScript 的对象都有一个内置的 [[Prototype]] 私有属性, 这个属性指向另一个对象, 我们称这个对象为原对象的原型. 当 JS 引擎访问 obj 的 toString 属性时, 首先会去 obj 对象查找, 发现找不到, 就沿着 obj 的 [prototype] 属性去他的原型上查找.
通过 Chrome 开发者工具, 我们可以看到这个 obj 原型的真面目:
图中我们可以看到, obj 的原型对象已经定义了一个 toString 属性. 所以, 空对象也可以使用 toString()这个属性方法.
来源: http://www.css88.com/qa/javascript/10908.html