0

documentJavaScriptのオブジェクトをオーバーライドする際に問題が発生しています。

function myFunction(document) {
    [code]
}

正常に動作します。しかし

function myFunction(newDocument) {
    document=newDocument
    [code]
}

ではない。これまでのところ、前者の方法で関数を使用してうまく管理していますが、ドキュメント オブジェクトを一度オーバーライドして忘れてしまいたいと思います。ドキュメント オブジェクトをグローバルにオーバーライドする適切な方法を誰かが教えてくれたら、ありがたいです。

4

1 に答える 1

2

私は断固として、これはできないし、すべきでもないと言いたい。

document現在のオブジェクト (実行中のオブジェクト)を置き換えるとscript、スクリプトはスコープ/コンテキストから外れませんか?

これができないことを示唆するフィドル(http://jsfiddle.net/V3Rsh/)を作成しました(少なくともFirefox 20では)。documentコンソールを見ると、割り当ての前後で同じ URL が報告されます。しかし、デバッグして最初にブレークポイントを置きconsole.log()、コンソールで document = newDocument() 行を手動で実行するとdocument、「about:blank」URL を持つオブジェクトが作成されていることがわかります。しかし、その後の呼び出しにはそれconsole.log()が反映されません。

于 2013-05-10T23:28:23.447 に答える