最后,我在下面的代码中看到了一种关闭的味道。
function create(parent) {
var F = function() {};
F.prototype = parent;
return new F();
}
var masterObject = {a: "masterObject value"}
var object1 = create(masterObject);
var object2 = create(masterObject);
var object3 = create(masterObject);
var object3.a = "overridden value";
object1.a; // "masterObject value"
object2.a; // "masterObject value"
object3.a; // "overridden value"
masterObject.a = "new masterObject value"//value is changed now
object1.a; // "new masterObject value"
object2.a; // "new masterObject value"
object3.a; // "overridden value"
object1.a ,abject2.a 的值永久更改。这是因为我更改了全局变量还是关闭的影响?因为我没有再次调用 Create() 函数,为什么值会自动更改?最后一个问题“当我对全局变量进行更改时,这是否会自动影响使用该变量的所有对象?”在我看来,要使该变量生效,我应该再次调用 Create() 函数不是吗?