我试图找到一种方法来初始化附加到具有本地化值引用的 JavaScript 伪类的所有实例的属性值,而无需手动迭代每个实例,例如以下代码:
function A() {
this.a = '0';
}
var a = new A();
var b = new A();
document.write(a.a + a.b + a.c + '<BR />');
A.prototype.b = '1';
Object.defineProperty(A.prototype, 'c', {
writable: true,
value: (function() { return(this.a + '|'); })()
});
document.write(a.a + a.b + a.c + '<BR />');
b.c = '3';
document.write(a.a + a.b + a.c + '<BR />');
document.write(b.a + b.b + b.c + '<BR />');
输出:
0undefinedundefined
01undefined|
01undefined|
013
但在所需条件下会输出:
0undefinedundefined
010|
010|
013
编辑:
为澄清起见,该值应初始化为通过“this”访问的对象的属性。当属性附加到对象时,不会在 get 或 set 调用中以延迟方式进行,也不会使用其他本地属性。