blob: 0968f1c6405038c5531eb8cb0ded461344ae55c0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
/**@constructor*/
function Reflection(obj) {
this.obj = obj;
}
Reflection.prototype.getConstructorName = function() {
if (this.obj.constructor.name) return this.obj.constructor.name;
var src = this.obj.constructor.toSource();
var name = src.substring(name.indexOf("function")+8, src.indexOf('(')).replace(/ /g,'');
return name;
}
Reflection.prototype.getMethod = function(name) {
for (var p in this.obj) {
if (p == name && typeof(this.obj[p]) == "function") return this.obj[p];
}
return null;
}
Reflection.prototype.getParameterNames = function() {
var src = this.obj.toSource();
src = src.substring(
src.indexOf("(", 8)+1, src.indexOf(")")
);
return src.split(/, ?/);
}
|