簡體   English   中英

您可以在 Javascript 中使用一行代碼更改多個變量的相同屬性嗎?

[英]Can you change the same property for more than one variable with one line of code in Javascript?

例如,如果我有許多具有相同屬性x變量,

a.x
b.x
c.x

我可以一次更改所有這些變量的x值嗎? 就像是:

*.x = 200; // Change the value of "x" in every variable that has a property "x" to 200.

是否可以? 如果是這樣,如何?

不可以。您不能像您建議的那樣使用通配符一次設置多個相同類型的變量。

您可以像這樣連接語句:

left.x = right.x = 200;

或者在 javascript 中使用類似對象的列表或字典,並迭代每個匹配的鍵。

如果您將變量收集在一個公共對象中,如下所示:

var points = { a: { x: 1, y: 2}, b: { x: 3, y: 4 }, c: {x: 5, y, 6 }

那么它幾乎可以完成(減去整潔的通配符符號)。 這是一個應該適合您需要的功能:

function setPropertyForAll(container, propName, newValue) {
    for (var key in container) {
        if (container.hasOwnProperty(key) && container[key] !== null && container[key].hasOwnProperty(propName)) {
            container[key][propName] = newValue;
        }
    }
}

用法:

setPropertyForAll(points, "x", 42);

暫無
暫無

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

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