gpt4 book ai didi

javascript - 邪恶的 Eval() 不向对象添加属性

转载 作者:行者123 更新时间:2023-11-28 21:19:30 25 4
gpt4 key购买 nike

我想向具有动态属性名称的对象添加属性。

为此,我使用了 eval(),但编译器返回: Unexpected token 。我正在做的事情是否可行,或者 eval() 不能用于 str vars 这样的对象

这是我的一些代码

    var options = {}; // Creating empty object
$("#selAdresse, #selCP, #selVille, #selPays, #selNom, #selDescription").live('change', function(){
var opt = eval("var options.lol"); // The evil eval();
opt = "Test"; // Trying to set options.lol = "test"
console.log(options); // Returning an empty object... Nothing change
});

最佳答案

您不使用 var 向对象添加属性。您使用 var 来初始声明变量:

var foo = {};

添加属性很简单:

foo.bar = null;

如果您有一个包含属性名称的字符串,则可以使用方括号表示法:

var propName = 'bar';
foo[propName] = null;

编辑:根据您对 kbok 的评论,方括号表示法就是您想要的:

var options = {};
options[ $( this ).attr( 'id' ) ] = 'Test';

结束编辑

为了具体说明您的问题(尽管您不应该这样做,并且有很多方法可以避免它),您的 eval 的语法如下所示:

eval( 'foo.bar = null;' );

关于javascript - 邪恶的 Eval() 不向对象添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6762369/

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