2011-11-09 10 views
2

私は、次のコードを実装しようとしていた。jslintメッセージを修正する方法:変数がすでに定義されて

var action = function (e) {  
    if (!e) { 
     var e = window.event; 
    } 
    e.cancelBubble = true; 
    if (e.stopPropagation) { 
     e.stopPropagation(); 
    } 
    container.objet.hide(); 
} 

をしかし、以下についてjslint文句:

'e' is already defined. var e = window.event;

は最高何ですかこの問題を解決するには?

+1

イベントが既にグローバルスコープ(window.event)に存在するので、問題を引き起こす関数名としてeventを使用していませんか? – row1

+1

varステートメントをスキップするだけです。e = window.event; –

答えて

5

名前付き引数を使用すると、ローカルスコープの変数(varのようになります)が作成されます。引数がeで、var eを使用しているため、変数を2回作成しようとしています。

varは、eを3回目に使用する場所から削除してください。

var event = function (e) {  // First time 
    if (!e) {     // Second time 
     e = window.event;  // Third time 
+4

ifの置き換えについて:e = e | window.event; – row1

0

実際には、引数としてeが定義されています。したがって、引数と同じ変数を定義すると、不平を言います。