JS - 获取类的成员名称
JS - get the member names of the class
我需要获取类的成员名称(字段和方法)或至少字段名称。例如,我有以下类:
function PersonClass(){
this.name="Jack";
this.surname="SomeOne";
}
我有两个解决方案:
- 将类转换为字符串并使用正则表达式
- 在类中创建方法并使用
for ... in this
获取成员。但是,要运行此方法,我需要创建类的实例。
我不喜欢他们两个。是否有其他解决方案可以获取成员名称?
您可以使用
对象的prototype
来执行此操作。例如,给定一个类类 javascript 对象的定义:
var MyObject = function() {
};
MyObject.prototype.foo = 3;
MyObject.prototype.bar = function(){
alert("bar");
};
这将起作用(不需要实例):
for(var x in MyObject.prototype)
alert(x); // alerts "foo" and then "bar"
以相同的方式,实例通常可以工作
var o = new MyObject();
for(var x in o)
alert(x); // also alerts "foo" and then "bar"
获得成员名称后,您将如何处理它们?
为什么你会想象在调用构造函数来创建特定实例之前,当它们甚至不存在时,你可以以某种方式获得它们?
为什么你会相信你可以写一个如此聪明的正则表达式,以至于它可以很好地解析JS来提取所有属性(而不是"字段")?这样的正则表达式怎么可能识别由其他地方定义的原型方法动态和有条件地添加的属性?
如果要记录此类元数据,则只需显式执行此操作,最有可能作为构造函数上的属性:
PersonClass.properties = ['name', 'surname'];
在某些遥远的 JS 版本中,您可以通过注释来执行此操作:
@properties('name', 'surname')
function PersonClass() { ...
相关文章:
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何在 JavaScript 中“获取”成员变量
- X-editable:如何获取每行的id,以便更新单个成员
- 获取成员数据模型中任何属性的属性类型
- 推进器的存在可以't使用angularjs和golang获取成员
- 如何在javascript中声明成员函数?获取“TypeError: Object.function is not a
- JS - 获取类的成员名称
- 从 Meetup API 获取 200 多名组成员
- 在运行时动态获取javascript中数组成员的名称
- 获取对象的值'通过变量的成员
- 如何获取当前/选定的id与链接到成员中的助手
- 如何从 jquery 中属于同一类成员的元素中获取所有不同的值
- 如何从对象中获取成员名称
- 在成员函数回调中获取对象
- 如何在javascript中获取对象的第一个成员
- 如何使用类名作为选择器获取类成员的数据属性
- 如何在碰撞检测函数中获取成员变量
- Trello API:如何获取组织或成员的董事会id
- 原型编程- Javascript错误:这个.如果窗体未定义,则无法在成员方法中获取对象变量
- 数组的成员是未定义的,它拥有获取该成员所需的所有数据