2011-12-08 45 views
1

这样做的任何方式都是as3?获取as3中变量名的字符串表示形式

例如,如果我有var dog:String,我该如何从变量中获得“狗”?

展望反映要做到这一点,但一定是一个更简单的方法

- 一个

+1

这是否有意义?因为var名称不重要。如果是,那么你应该使用某种对象键/值映射。你也期望得到如果你做什么 'var dog:String; var cat:String = dog;' –

+1

它确实....我想找到一种方法来自动将XML节点值映射到VO类的公共propeties – nuway

+0

好像你问的是错误的问题。问你想要达到什么目的,你可能会有更好的运气,而不是问这样一个问题。一个例子可能是“如何自动将XML节点值映射到VO类的公共属性?” –

回答

3

希望这有助于。

class A { 
    var dog:String = "something"; 
    var cat:String = "eatdog"; 
} 

function getVars(obj:*):void 
{ 
    for(var i:* in obj){ 
     trace(i + " : " + obj[i]); 
     // this will trace all properties of object. 
     // dog : somthing 
     // cat : eatdog 
    } 
} 
0

在你的例子中,我不认为有一种方法来检索“狗”作为一个字符串。

但是,如果dogdynamic对象的属性,那么你可以使用这样的功能:

function getVarName(subject:*, value:*):String 
{ 
    for(var i:String in subject) 
    { 
     if(subject[i] == value) return i; 
    } 

    return ""; 
} 

该功能可以在一个场景中的工作是这样的:

var holder:Object = { 
    dog: "some awesome dog" 
} 

trace(getVarName(holder, "some awesome dog")); // dog 
1

声音就像你不想“获取”变量名的字符串表示一样,而是根据字符串设置变量。

要设置您有它的名字作为一个字符串,你可以这样做一个变量:

this['dog'] = 'value of the dog var'; 
+1

'+ 1'请注意,除非'this'是'dynamic'(或者有'dog'属性),否则这将不起作用。 – Marty

相关问题