0

我正在尝试修改框架 JavaScript 的某些行为。在 IE10 的开发者工具的View source下拉菜单中,有一个名为Dynamic Sc​​ripts 的文件夹。(也许有人可以解释一下动态脚本是什么?)在功能代码(1089)
下有以下代码 这是代码:

function anonymous() {
var f=arguments.callee; return f._func.apply(f._owner, arguments);
}

调用堆栈的第一个条目是

Function code, Function code (1089), line 2

这条线被执行了好几次。但我不知道为什么。

谁叫这条线?

4

1 回答 1

0

anonymous函数调用并不意味着被调用的函数anonymous。它实际上是一个用于对未命名函数进行分类的名称,例如:

var anUnnamedFunc = function() {
    return true;
};

如果您在监视或控制台输出中引用了此函数,它将被转储为匿名函数。要定义一个非匿名函数,您可以使用:

var aNamedFunc = function namedFunction() {
    return true;
};

被调用的函数看起来很像一个bind函数。这是一个包装函数,用于创建将参数和/或上下文绑定到另一个函数的函数。但是,此版本使用某种私有属性机制来绑定参数:

var bind = function() {
    var f = arguments.callee;
    return f._func.apply(f._owner, arguments);
};

我实际上看不到这种功能将用于什么,所以想知道它是否只是 IE 调试器的异常。尝试使用其他浏览器并查看该功能是否出现在配置文件报告中。

于 2013-08-29T14:26:53.853 回答