1. 什么是 prototype
prototype 对于 JavaScript 的 意义重大,prototype 不仅仅是一种管理对象继承的机制,更是一种出色的设计思想
在现实生活中,我们常常说,某个东西是以另一个东西为原型创作的。这两个东西可以是同一个类型,
也可以是不同类型。习语“照猫画虎”,这里的猫就是原型,而虎就是类型,用 JavaScript 的 prototype 来 表示就是“虎.prototype =某只猫”或者“虎.prototype= new 猫()”
eg:
function ClassA() { ...... } ClassA.prototype = new Object(); function ClassB() { ...... } ClassB.prototype = new ClassA(); //ClassB 以 ClassA 的对象为原型 function ClassC() { ...... } ClassC.prototype = new ClassB(); //ClassC 以 ClassB 的对象为原型 var obj = new ClassC(); alert(obj instanceof ClassC); alert(obj instanceof ClassB); alert(obj instanceof ClassA); alert(obj instanceof Object);
运行结果:
true
true
true
true