【发布时间】:2010-01-14 00:14:36
【问题描述】:
我正在开发一个小库,让我可以对对象进行一些基本的键值编码。假设我有以下对象:
var data = { key1: "value1", key2: { nested1: 1, nested2: "wowza!" } };
我有以下 JavaScript 函数:
var setData = function(path, value) {
eval("data." + path + "= value;");
};
并在使用中:
setData("key1", "updated value1"); // data.key1 == "updated value1"
setData("key2.nested1", 99); // data.key2.nested1 == 99
这可行,但是我想在不使用eval 的情况下完成上述操作。这可能吗,还是eval 是最好的选择?
编辑:
注意可以假设您设置的值存在,至少对于路径深度 - 1。我更关心设置现有对象的值。
【问题讨论】:
标签: javascript object key-value-observing key-value-coding