1

私のプロジェクトでは、JavaScript コード、特に正規表現のような動的関数を解析していますdocument.createElementdocument.createElementしかし、フックを作るためにラップするように提案されました。やり方がわかりません

彼らはまた例を提供しました:

var f = document.createElement; 
document.createElement = function(tagName){ 
    console.log(tagName); 
    f.apply(document, arguments); 
} 

このコードは追跡中ですdocument.createElement

これを自分のコードでどのように使用できるか理解できません。誰か助けてください

4

1 に答える 1

2

そのコードは元の参照を保存し、新しい関数を指すようにdocument.createElement再割り当てします。document.createElement

この新しい関数の内部では、最初の引数をログに記録し、元の引数をその値として呼び出し、残りをそのまま渡しdocument.createElement()ます。documentthisarguments

これが私がそれをコーディングする方法です...

(function() {
    var documentCreateElement = document.createElement;

    document.createElement = function(tagName) {
        console.log(tagName);
        return documentCreateElement.apply(document, arguments);
    }

})();

console.log()利用できない場合は、その行を次のように変更することをお勧めします...

window.console && console.log && console.log(tagName);
于 2012-04-09T07:44:03.633 に答える