0

私は Javascript の不変性の概念に夢中になっています。そのコンセプトは「一度作ったものは変えられない」と説明されています。しかし、それは正確にはどういう意味ですか?文字列の内容の例を理解した

 var statement = "I am an immutable value";
 var otherStr = statement.slice(8, 17);

2 行目は、statementの文字列をまったく変更しません。しかし、方法はどうですか?メソッドの不変性の例を教えてください。あなたが私を助けてくれることを願っています、ありがとう。

4

1 に答える 1

1

文字列の不変性が役立つ例としては、後で使用できるように文字列を関数に渡す場合があります (たとえば、setTimeout で)。

var s = "I am immutable";

function capture(a) {
  setTimeout(function() { // set a timeout so this happens after the s is changed
    console.log("old value: " + a); // should have the old value: 'I am immutable'
  }, 2000);
}

capture(s); // send s to a function that sets a timeout.
s += "Am I really?"; // change it's value
console.log("new value: " + s); // s has the new value here

このようにして、グローバル スコープでsにどのような変更を加えても、キャプチャ関数のスコープ内の (古い s) の値に影響を与えないことを確認できます。

このプランカーでこれが機能していることを確認できます

于 2015-10-04T18:18:19.320 に答える