这样做的任何方式是as3?
例如,如果我有var dog:String
,我如何从该变量中获取“狗”?
考虑反思这样做,但必须有一个更简单的方法
- 甲
答案 0 :(得分: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
}
}
答案 1 :(得分:1)
首先,如果它是自定义类的实例,您可以覆盖toString()
方法。
如果它是该类的属性,则可以使用此方法 - https://stackoverflow.com/posts/3781635/revisions
如果是局部变量,则无法获得该名称。
答案 2 :(得分:1)
听起来你不想“获取”变量名的字符串表示,而是根据字符串设置变量。
要设置一个名称为字符串的变量,您可以执行以下操作:
this['dog'] = 'value of the dog var';
答案 3 :(得分:0)
在您的示例中,我认为没有办法将“dog”检索为字符串。
但是,如果dog
是dynamic
对象的属性,那么您可以使用如下函数:
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