0

フレームワークの JavaScript の動作を変更しようとしています。IE10 の開発者ツールの[ソースの表示]ドロップダウンの下に、 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 に答える