类有一个方法可以从给定的Object更新其实例属性。
由于某些原因,在ActionScript 3中循环遍历this
的属性
我尝试过类似的事情:
class myThing() {
public var A:String;
public var B:String;
public var C:String;
...
public function bindToObject( obj:Object){
for( var s in this){
if( obj.hasOwnProperty(s)) this[s] = obj[s];
}
}
}
这样循环永远不会执行,好像this
根本没有属性。
请建议将对象属性复制到我的班级实例的智能方法。
答案 0 :(得分:5)
你可能想尝试反过来做。含义,解析源对象的属性,并将其值分配给目标对象。我自己调查了这个问题,这是我实现该方法的方法:
private function parseData(data:Object):void
{
for (var property:String in data)
if (this.hasOwnProperty(property))
this[property] = data[property];
}
它与 bindToObject 方法的意图非常相似,除了方法解析参数对象的事实。选择这种方式的原因是,在我的上下文中,目标对象的所有属性都被认为是可选的(例如,如果我只为源对象传递一个属性,例如3个,则不会感觉来解析所有目标对象的属性)。但是,在您的情况下,上下文可能会有所不同。
答案 1 :(得分:2)
class myThing() {
public var A:String;
public var B:String;
public var C:String;
...
setPropertyIsEnumerable("A");
setPropertyIsEnumerable("B");
setPropertyIsEnumerable("C");
假设您的课程延长Object
。