Javascript在运行时扩展对象?

时间:2011-12-14 14:51:35

标签: javascript

嗨,这可能吗?说你有以下内容:

var settings = {
  name : 'bilbo',
  age : 63
}

你能在运行时动态添加另一个属性吗?

var settings = {
  name : 'bilbo',
  age : 63,
  eyecolor : 'blue'
}

6 个答案:

答案 0 :(得分:4)

只需使用点符号添加新属性:

var settings = {
  name : 'bilbo',
  age : 63
}

settings.eyecolor = 'blue';

// or: settings['eyecolor'] = 'blue';
// both of the above will do the same thing:
// add a property to your object

console.log(settings);
/* Logs:
{
    name : 'bilbo',
    age : 63,
    eyecolor: 'blue'
}
*/

P.S。这是一个常规的JavaScript对象文字。它与JSON无关。

JSON只是一种将对象/数组表示为类似JavaScript代码的字符串的方法。

答案 1 :(得分:2)

简单:

settings.eyecolor = 'blue';

settings['eyecolor'] = 'blue';

要么在运行时将eyecolor字段添加到您的设置对象。

var settings = {
  name : 'bilbo',
  age : 63
};
settings.eyecolor = 'blue'; // can be run anywhere once settings has been defined
console.log(settings.name, settings.age, settings.eyecolor); // "biblo" 63 "blue"

答案 2 :(得分:1)

“JSON”对象是普通的JavaScript对象。你可以这样做:

settings.eyecolor = 'blue';

settings['eyecolor'] = 'blue';

答案 3 :(得分:1)

是的,你可以像这样编码:

settings.eyecolor = "blue";

答案 4 :(得分:0)

是的,你可以简单地说;

settings["eyecolor"] = "blue";

然后会出现在任何重新序列化的字符串中。

答案 5 :(得分:0)

var settings = {
  name : 'bilbo',
  age : 63
}

settings.eyecolor = 'blue';

这样做。