20 javascript reference function
itself.bind = function (object, method, callback, context, args, includeEventArgs) {
var handler, originalArgLen;
args = args.slice(0, arguments.length);
originalArgLen = args.length;
context = context || null;
handler = function () {
if (includeEventArgs) {
for (var i = arguments.length - 1; i >= 0; i--) {
args.push(arguments[i]);
}
}
callback.apply(context, args);
};
handler.userArgsLength = originalArgLength;
object[method] = handler;
};
Run Code Online (Sandbox Code Playgroud)
假设我打电话
TOOL.bind(canvas, "onmouseover", doDrawFunc, [currentDrawingTool], true);
Run Code Online (Sandbox Code Playgroud)
我希望能够userArgsLength从内部访问doDrawFunc.
Ple*_*and 22
你在找arguments.callee.caller.userArgsLength.
arguments.callee是一个参考doDrawFunc..caller是调用它的函数(handler)..userArgsLength 是该函数对象的属性.编辑:我不相信arguments.callee没有改变你的主要功能有任何方法可以避免.无论如何,您可能应该将回调需要访问的任何内容作为参数传递给该回调函数.你甚至可以handler作为一个参数传入.
| 归档时间: |
|
| 查看次数: |
17554 次 |
| 最近记录: |