gpt4 book ai didi

javascript - 将变量名而不是它的值赋予函数

转载 作者:行者123 更新时间:2023-11-29 20:12:43 25 4
gpt4 key购买 nike

为了删除繁琐的代码,我想创建一个函数来简化它。
因此,为了更改我存储在对象中的设置,我创建了这个。

var settings = {
color : 'red'
//one of many settings
};
alert(settings.color); // returns red
function changeValue(property, value){
settings.property = value;
}
changeValue('color', 'blue');
alert(settings.color); // still return red

它似乎被视为一个字符串。
如果我试试这个:

function changeValue(object, value){
object = value;
}
changeValue(settings.color, 'blue');

它只会给函数“红色”的值。
还有这个:

changeValue('settings.color', 'blue');

显然行不通。

那么我该如何解决呢?我如何将一个变量传递给一个函数而不是它的值以便它可以被改变?

注意:该功能目前已简化,但当它运行时会包含更多魔法。

最佳答案

对象您要更改的属性的名称作为单独的参数传递:

function changeValue(obj, prop, value) {
obj[prop] = value;
}

changeValue(settings, "color", "blue");

假设 var prop = "color" 那么 obj[prop] 等同于 obj.color。第一种表示法允许您动态指定应更改的属性。

关于javascript - 将变量名而不是它的值赋予函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8639284/

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