我需要有两个变量,x和y,以及一个总是等于1的等式。 这是一个简单的例子。这个例子可以很容易用y来定义,比如y = 1 / x,但我有另一个我需要使用的等式,而且用y来定义太难了。
var x, y;
x*y = 1;
x = Math.random()*20;
console.log(y);
我会收到一条错误消息,比如
Uncaught ReferenceError: Invalid left-hand side in assignment (line 2)
变量可以定义为x*y
,如var z= x*y
,但显然不是常数。也许有一些解决方法,比如定义两个变量,一个作为常数,另一个作为等式,并找到一些方法来联系它们?也许javascript的松散会允许一些新技术?
提前致谢! :)
答案 0 :(得分:0)
你不能直接这样做。 x
的值取决于y
的值。你必须描述他们的依赖。
您可以执行以下操作:
var x_y = (function () {
var x = 1, y = 1;
return {
set_x: function (new_x) {
x = new_x;
y = 1 / new_x;
},
set_y: function (new_y) {
y = new_y;
x = 1 / new_y;
},
get_x: function () {
return x;
},
get_y: function () {
return y;
}
};
}());
x_y.set_x(Math.random()*20);
console.log(x_y.get_y());
基本上我们说的是x = 1 / y;
和y = 1 / x;
,我们将这些值结合起来:如果你改变一个,那么另一个也会改变。