给出以下代码:
configureWithApplicationID
为什么内部变量都被重用和共享?
即使实例链接到构造函数,结果仍然不正确。
我错过了什么?
答案 0 :(得分:1)
基本上,prototype是与类(函数)的实时连接。无论何时从类创建新实例,这些实例都将共享原型属性。变量.
.
var t1 = new Test();
var t2 = new Test();
// after execution of the above line
//closure innerPrivate inside of prototype function is replaced with t2's innerPrivate.
//So updating t1's innerPrivate via innerShow of it(t1)
//doesn't affect the closure inside of protoShow
是内部函数的闭包,但它将使用最后一个实例的变量进行更新。
list
最好避免在构造函数中更改原型。因为这样做会造成不必要的混淆。