javascript - 如何获取回调函数的所有参数

标签 javascript callback arguments

我经常发现自己使用回调函数,但手头没有它的文档,如果能看到所有要传递给该回调函数的参数就太好了。

// 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);
};
  1. 上下文,this已保留。
  2. 所有参数均已正确传递。
  3. 返回值正确传递。

注意:此方法适用于大多数情况。尽管在某些极端情况下此方法会失败,包括:

  • 只读属性(例如使用 Object.definePropertywritable:false 定义)
  • 当 getter/setter 不对称时,使用 getter/setter 定义的属性。
  • 主机对象和插件 API:例如Flash 和 ActiveX。

关于javascript - 如何获取回调函数的所有参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9828684/

相关文章:

python - 使用可变数量的键的字典,如何获得其值的笛卡尔积?

javascript - 查询。 text() 似乎在 IE8 中不起作用

javascript - 将对象键值作为数组进行迭代

javascript - Vue-js 记住每个问题的复选框选择

javascript - 如何在回调中访问正确的“this”?

javascript - 仅在上一次交互完成后递增(回调)

javascript - google.load 从不调用回调

javascript - 使用 javascript 创建动态内容的最佳方式?

c# - 当调用委托(delegate)时,如何发送用作参数的参数列表?

JavaScript - 创建多个未知参数并将其从字符串传递到函数