2011-12-16 3 views
0

を与える私はこのコードを持って:オペラとFirefoxは私に異なるコンテキスト

var config = {}; 
config.knock = { 
    self:null, 
    init : function(){ 
     self = this; 
     console.log(self) 
    } 
}; 

$(document).ready(function(){ 
    config.knock.init(); 
}); 

Firefoxの(8)は、私自身がconfig.knockオブジェクトである告げますが、Operaは(11.00)は、そのWindowオブジェクトに指示します。誰が正しい?

答えて

2

self[MDN]は、windowオブジェクトのプロパティです。 Operaはそれを無効にすることはできません。

あなたがvarとあなたの変数を宣言していないように、この

self = this; 

は、あなたのケースで

window.self = this; 

と同じです。

のいずれかを入力するか、config.knock.selfを参照する場合は、config.knock.selfまたはthis.selfのいずれかを入力します。

FirefoxとOperaの場合、thisconfig.knockを参照します。

+0

config.knockオブジェクトへのコンテキストに依存しない参照を格納するためにselfを作成しました。したがって、config.knock.selfが完全に冗長である場合は使用します。私は自己の名前を変更します。 –

関連する問題