有其他OO语言经验的开发人员在看到独立的构造函数和原型时,很可能会感到非常困惑。动态原型模式正是致力于解决这个问题的一个方案,它把所有信息都封装在了构造函数中,而通过在构造函数中初始化原型(仅在必要的情况下),又保持了同时使用构造函数和原型的优点。换句话说,可以通过检查某个应该存在的方法是否有效,来决定是否需要初始化原型。来看一个例子。
注释:使用动态原型模式时,不能使用对象字面量重写原型。前面已经解释过了,如果
在已经创建了实例的情况下重写原型,那么就会切断现有实例与新原型之间的联系。
有其他OO语言经验的开发人员在看到独立的构造函数和原型时,很可能会感到非常困惑。动态原型模式正是致力于解决这个问题的一个方案,它把所有信息都封装在了构造函数中,而通过在构造函数中初始化原型(仅在必要的情况下),又保持了同时使用构造函数和原型的优点。换句话说,可以通过检查某个应该存在的方法是否有效,来决定是否需要初始化原型。来看一个例子。
注释:使用动态原型模式时,不能使用对象字面量重写原型。前面已经解释过了,如果
在已经创建了实例的情况下重写原型,那么就会切断现有实例与新原型之间的联系。