【发布时间】:2017-01-22 18:38:38
【问题描述】:
假设您有一个对象,并且您想要获取您所引用的属性名称的字符串。有那个名字吗?我的意思是它是某种reflection,但它有更具体的名称吗?语言是否以标准方式实现它?
例如,此功能适用于在 JavaScript 或 ActionScript 中使用 toString() 的基于类的对象。
var person:Person = new Person();
var nameOfClass:String = person.toString();
trace(nameOfClass); // traces "Person" or "com.mydomain.model.Person"
但由于属性可以为 null 或未定义,因此您不能使用 toString(),因为它会引发错误,或者如果不是 null,它将得到 value:
var person:Person = new Person();
var nameOfProperty:String = person.name.toString(); // error is thrown when null
person.name = "John";
person.name.toString(); // traces the value "John" not the type
所以我猜有些语言会有这样的全局函数。
var person:Person = new Person();
var nameOfProperty:String = propertyName(person.name);
trace(nameOfProperty); // traces "name"
nameOfProperty = propertyName(person.zipCode);
trace(person.zipCode); // traces "zipCode"
此功能是否有特定名称,如果有,如何实现?
【问题讨论】:
标签: javascript java c actionscript-3 syntax