簡體   English   中英

如何在javascript中實現類似指針的功能?

[英]How do I implement something like pointers in javascript?

我知道javascript在指向內存中某個位置的變量方面沒有指針,但是我所擁有的是一些變量,這些變量可能會發生變化並且相互依賴。

例如:

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

到目前為止,我已經根據每個變量對方程進行了重寫,並在進行任何更改后調用了相應的更新函數。

例如:如果比例更改,則中心,高度和寬度保持不變。 所以我打電話

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

當這些變量中的任何一個發生更改時,這是更新這些變量中最簡單的方法嗎?

我以兩種不同的方式閱讀了您的問題,所以有兩個答案:

其他值更改時更新計算值

兩種通常的方法是: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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM