gpt4 book ai didi

javascript - 我们可以修改Javascript中不可变对象(immutable对象)的方法吗?

转载 作者:行者123 更新时间:2023-12-03 08:44:49 25 4
gpt4 key购买 nike

我对 Javascript 中的不变性概念感到疯狂。这个概念被解释为“一旦被创造出来,就永远不会改变”。但这到底是什么意思呢?我理解了字符串内容的示例

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

第二行绝不会改变语句中的字符串。但方法又如何呢?你能举一个方法中不变性的例子吗?希望您能帮助我,谢谢。

最佳答案

字符串中的不变性有帮助的一个例子是,当您将字符串传递给函数以便稍后使用它时(例如,在 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 进行什么更改,都不会影响 capture< 范围内 a (旧的 s)的值/strong> 功能。

您可以在 plunker 中检查此工作情况

关于javascript - 我们可以修改Javascript中不可变对象(immutable对象)的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32936671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com