可以将两个变量操作等同于JavaScript中的常量吗?

时间:2014-12-21 20:28:12

标签: javascript variables operators

我需要有两个变量,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的松散会允许一些新技术?

提前致谢! :)

1 个答案:

答案 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;,我们将这些值结合起来:如果你改变一个,那么另一个也会改变。