类有一个方法可以从给定的Object更新其实例属性.
出于某种原因,this在ActionScript 3中循环遍历失败属性.
我尝试过类似的东西:
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];
}
}
}
Run Code Online (Sandbox Code Playgroud)
这样循环永远不会执行,好像this根本没有属性.
请建议将对象属性复制到我的类的实例的智能方法.
小智 5
你可能想尝试反过来做.含义,解析源对象的属性,并将其值分配给目标对象.我自己研究了这个问题,这是我实现该方法的方法:
private function parseData(data:Object):void
{
for (var property:String in data)
if (this.hasOwnProperty(property))
this[property] = data[property];
}
Run Code Online (Sandbox Code Playgroud)
它与bindToObject方法的意图非常相似,除了该方法解析参数对象的事实.选择这种方式的原因是,在我的上下文中,目标对象的所有属性都被认为是可选的(例如,如果我只为源对象传递一个属性,例如3个,则不会感觉来解析所有目标对象的属性).但是,在您的情况下,上下文可能会有所不同.
| 归档时间: |
|
| 查看次数: |
4863 次 |
| 最近记录: |