如何在javascript中实现像指针一样的东西?

时间:2010-03-29 13:56:51

标签: javascript

我知道javascript没有关于引用内存中某个位置的变量的指针,但我所拥有的是一些可能会发生变化并相互依赖的变量。

例如:

Center (x,y) = (offsetLeft + width/scale , offsetTop + height/scale)

到目前为止,我已经根据每个变量重写了等式,并且在任何更改之后我调用了相应的更新函数。

例如: 如果比例改变,则中心,高度和宽度保持不变。所以我打电话给

updateoffset() {
    offsetLeft = centerx - width/scale;
    offsetTop  = centery - height/scale;
}

当这些变量中的任何变量发生变化时,这是更新这些变量的最简单方法吗?

1 个答案:

答案 0 :(得分:4)

我用两种不同的方式阅读你的问题,所以有两个答案:

在其他值更改时更新计算值

两种常用的方法是:1。要求仅通过“setter”函数更改值,然后将其用作重新计算更改内容的机会,或2.要求使用“getter” “函数获取计算出的值,您可以动态计算(或者如果价格昂贵,则从缓存计算中检索)。

从函数

返回多个值

如果您正在寻找一种从单个函数返回多个值的方法,则可以通过返回一个对象来轻松完成。例如:

// Definition:
function center(offsetLeft, offsetTop, width, height, scale) {
    return {
        x: offsetLeft + width/scale,
        y: offsetTop + height/scale
    };
}

// Use:
var pos = center(100, 120, 10, 20, 2);
// pos.x is now 105
// pos.y is now 130