Nik*_* B. 6 javascript closures
假设我有一个Javascript类定义并实例化如下:
Demo = function() {
var abc = "foo";
return {
get test() { return abc; }
}
}
obj = Demo();
obj.test // evaluates to "foo"
Run Code Online (Sandbox Code Playgroud)
仅面对这个Demo实例obj,我可以更改abc属于此对象的变量的值,该变量是在constructur函数引入的闭包中定义的吗?
var abc在演示范围之外不能直接使用。
如果您想从该范围之外更改它,则必须添加一个方法来设置它。
Demo = function() {
var abc = "foo";
return {
get test() { return abc; }
}
this.setTest(a) {abc = a;}
}
var obj = new Demo();
obj.setTest("fun");
Run Code Online (Sandbox Code Playgroud)
有关可以使用的访问器类型的示例,请参阅前面的讨论。