2012-07-27 28 views
6

böyle JavaScript kodu var bir değer döndürmez =>anonim işlev daima

(function(){ 
    document.getElementById("element").onclick = function(){ 
     var r = confirm("Are you sure ?"); 
     if (r){ 
      return true; 
     } else { 
      return false; 
     } 
    } 
})(); 

bu komut çalışır, ancak sadece bana bildirim anonim çalışmaz bu konuda Sıkı Uyarı verir hep bunu nasıl önleyebilir ve herhangi bir sorun provoke edecek bir değeri

bunun ne demek ilgileniyorum dönmek? Lütfen herhangi bir fikrin var mı? teşekkürler :)

cevap

8

O çünkü anonim fonksiyonunun olmadığını return ile else fazla olacağından bu kadar. Dönüş fonksiyonunu çıkar beri if deyimi varsayılan return çalıştırır gerçek değilse, buna ihtiyacı yoktur.

(function(){ 
    document.getElementById("element").onclick = function(){ 
     var r = confirm("Are you sure ?"); 
     if (r){ 
      return true; 
     } 
     return false; 
    } 
})(); 

Düzenleme:

gibi bulutsu bu daha da kısa yapılabileceğini söyledi: Aslında

(function(){ 
    document.getElementById("element").onclick = function(){ 
     return confirm("Are you sure ?"); 
    } 
})(); 
+0

' dönüş onaylamak yardımcı olmaktır? – nebulae

+0

Evet, sadece uyarının nedenini göstermek istedim. – elclanrs

+0

bu yüzden uyarıyor, çünkü "geri dönüş" de yaygın değil, evet? – tnanoba

6

strict warning siz "çünkü senaryodaki ama eğer etkin strict mode arasında alıyorsanız sen-ebilmek kullanma sen komut dosyasında kullanılmıyorsa o zaman, sen söylediğin gibi, Komodo IDE kullanıyorsun ve muhtemelen sen JavaScript hata ayıklamanın tarayıcı tarafı bileşenini desteklemek için gerekli olan Firefox Extension for Debugging'u yüklediniz.

yüzden o zaman eneble veya devre dışı bazı ayarlar varsa. Sadece Düzen Menüsü> Tercihler gidin strict mode warnings devre dışı> JavaScript (kategorisinden) ve işaretini kaldırın bu kadar, Sıkı Uyarı Mesajları etkinleştirin. Ama strict mode kullanarak iyi bir programlama uygulamasıdır. hayır, `aynı etkiye sahip olacaktır; Aşağıda bir ekran görüntüsü ("? Emin misin") size

enter image description here

+2

isimleri biraz kafa karıştırıcı olsa da , Komodo'nun "katı uyarı mesajları" ile katı modda bağlantı yok. Onlar iki farklı şey. Sıkı mod aslında kodunuzun anlamını değiştirir. Komodo'nun katı uyarıları, bunun gibi şeylerle ilgili ekstra uyarılardır; Bu uyarılar, sıkı mod kullanıp kullanmadığı, herhangi bir kod için geçerli olabilir. –

İlgili konular