首先,我并不完全理解 Javascript 的原型结构,所以这可能是不可能的。
如果我有 ...
var vector = function( x, y ) {
this.x = x || 0;
this.y = y || 0;
}
var obj = function() {
this.position = new vector( 0, 0, 0 );
}
var cube = new obj();
...我怎样才能添加一个属性x
,obj
使得调用cube.x
等效于cube.position.x
. 我认为应该可以使每个引用的属性具有相同的值,但我只是不确定语法。类似的东西obj.prototype.x = obj.position.x
不起作用,因为obj.position
未定义。
我希望以下行为成为可能
alert(cube.position.x); // 0
alert(cube.x); // 0
cube.position.x = 2;
alert(cube.position.x); // 2
alert(cube.x); // 2
cube.x = 4;
alert(cube.position.x); // 4
alert(cube.x); // 4
这可能吗?
我可能应该提到我正在使用 Three.js,所以重写对象不是一种选择,只需添加它们和它们的原型。