我经常发现自己使用回调函数,但手头没有它的文档,如果能看到所有要传递给该回调函数的参数就太好了。
// callback is a function that I don't know the args for...
// and lets say it was defined to be used like: callback(name, number, value)
something.doSomething( callback );
我如何确定传入的参数是什么?
注意:当代码本身被混淆和缩小时(就像许多 js 框架一样),查看源代码可能没有什么帮助
最佳答案
要在不破坏功能的情况下获取参数列表,请按以下方式覆盖回调函数:
var original = callback;
callback = function() {
// Do something with arguments:
console.log(arguments);
return original.apply(this, arguments);
};
- 上下文,
this
已保留。 - 所有参数均已正确传递。
- 返回值正确传递。
注意:此方法适用于大多数情况。尽管在某些极端情况下此方法会失败,包括:
- 只读属性(例如使用
Object.defineProperty
和writable:false
定义) - 当 getter/setter 不对称时,使用 getter/setter 定义的属性。
- 主机对象和插件 API:例如Flash 和 ActiveX。
关于javascript - 如何获取回调函数的所有参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9828684/