如何动态地将属性添加到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"/>
答案 0 :(得分: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;
}
}