Kri*_*ian 21 javascript arguments callback
很多时候,我发现自己使用了一个回调函数,并且我没有方便的文档,并且很高兴看到所有要传递给该回调函数的参数.
// 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 );
Run Code Online (Sandbox Code Playgroud)
我怎样才能确定它传入的args是什么?
注意:当代码本身被混淆和缩小时(查看很多js框架),查看源代码可能是无用的
Rob*_*b W 29
要在不破坏功能的情况下获取参数列表,请以这种方式覆盖回调函数:
var original = callback;
callback = function() {
// Do something with arguments:
console.log(arguments);
return original.apply(this, arguments);
};
Run Code Online (Sandbox Code Playgroud)
this被保留.注意:此方法适用于大多数情况.虽然存在此方法失败的边缘情况,包括:
Object.definePropertywith 定义writable:false)它会像它一样容易吗?
function callback() {
console.log(arguments);
}
Run Code Online (Sandbox Code Playgroud)
?
每个函数都提供自动arguments收集中调用的参数.