0

如何动态地将属性添加到 Javascript 对象/类?

我正在解析一个 xml 文件,对于 xml 元素中的每个名称值对,我试图将该对作为属性添加到 Javascript 对象。为了清楚起见,请参阅我的示例:

function MyObject(nType)
{
    this.type = nType;
}

MyObject.prototype.parseXMLNode( /*XML Node*/ nodeXML )
{
   var attribs = nodeXML.attributes;
   for (var i=0; i<attribs.length; i++)
      this.(attribs[i].nodeName) = attribs[i].nodeValue;   // ERROR here
}

// Where the xml would look like
<myobject name="blah" width="100" height="100"/>
4

1 回答 1

1

你很亲密。要在对象上动态调用和分配属性,您需要使用括号表示法。

例如:

person = {}
person['first_name'] = 'John'
person['last_name'] = 'Doe'

// You can now access the values using:
// person.first_name OR person['last_name']

以下内容应该适合您:

MyObject.prototype.parseXMLNode( nodeXML ) {
    var attrs = nodeXML.attributes,
        length = attrs.length;

    for(var i=0; i < length; i++) {
        this[attrs[i].nodeName] = attrs[i].nodeValue;
    }
}
于 2012-04-13T02:17:25.550 回答