我知道在 javascript 中我可以遍历一个对象来获取它的所有属性。如果一个或多个属性是方法,是否可以查看方法中的代码而不仅仅是方法名称?例如
var a = someobject;
for (property in a) {
console.log(property);
}
是否有可能以类似于此的方式获取方法代码?先感谢您。
我知道在 javascript 中我可以遍历一个对象来获取它的所有属性。如果一个或多个属性是方法,是否可以查看方法中的代码而不仅仅是方法名称?例如
var a = someobject;
for (property in a) {
console.log(property);
}
是否有可能以类似于此的方式获取方法代码?先感谢您。
是的。它确实有效。尝试:
var a = {};
a.id = 'aaa';
a.fun = function(){alert('aaa');}
for (x in a) {
var current = a[x].toString();
if(current.indexOf('function') == 0){
current = current.substring(current.indexOf('{')+ 1, current.lastIndexOf('}'));
}
console.log(current);
}
但它不适用于浏览器本机代码。
您可以toString
在函数上使用该方法
IE
function hello() {
var hi = "hello world";
alert(hi);
}
alert(hello.toString());
更新:它在 JSFiddle 中不起作用的原因是因为我忘记在其中添加输出console.log
或alert
- http://jsfiddle.net/pbojinov/mYqrY/
只要a
是一个对象,您就应该能够使用方括号表示法并通过与对象属性同名的参数从参数中查询一个值。例如:
a[ property ];
如果您登录typeof( property )
,它将返回"string"
我们想要的。