如何遍历JavaScript对象中的所有方法并执行?
// 仅枚举自有可枚举属性(own property && enumerable property)
Object.keys(o).forEach(function(prop) {
typeof o[prop] === 'function' && setTimeout(o[prop].bind(o), 0);
});
之前想过的,不过具体通过 apply 将 this 重指向,并传入参数argument。
var ent = {}; // 执行环境
var obj={}; // 包含属性方法的对象
for( item in obj){
if(typeof obj[item] === 'function'){
obj[item].apply(ent, arguments);
}
}
13 回答12.8k 阅读
8 回答2.5k 阅读
2 回答5.1k 阅读✓ 已解决
7 回答1.9k 阅读
3 回答2.2k 阅读✓ 已解决
5 回答838 阅读
3 回答1.1k 阅读✓ 已解决
思路跟楼上的差不多,因为你要遍历的是object对象,因此得使用for-in方法。同时考虑到object里可能嵌套着多个function,所以得使用递归查找出所有的function。写了一个简单的例子,你可以参考一下: