-4

假设我有一个对象 obj,其中包含一些变量。我想要做的是添加一个新变量,它的名称是我作为参数给出的。例如:

var obj=
{
  number:8
}

function AddField(field_name,obj)
{
  //some magical code here
}

如果我打电话

AddField('name',obj);

我希望能够做到

obj.name='Apple'

调用此函数后。

有任何想法吗?

4

3 回答 3

5

使用方括号表示法:

obj[field_name] = value;

参考: http ://www.jibbering.com/faq/faq_notes/square_brackets.html#vId

于 2013-05-14T13:25:32.170 回答
0

使用括号表示法:

obj[field_name] = void 0;

这将创建一个具有未定义值的新属性。

于 2013-05-14T13:25:49.697 回答
0

如果 obj 已经定义,你可以做obj.field_name = nullor obj["field_name"] = nullundefined即使语言允许,我也不会设置任何值,只是为了解决语义问题:undefined表示“此属性/变量尚未定义”并且null表示“此属性/变量没有值”。

于 2013-05-14T13:29:49.190 回答