2013-08-27 61 views
5

vs işlevi nasılanonim javascript işlev çağrısı! Fonksiyonu

function(){ alert("test123");}() 

SyntaxError: Unexpected token (

ise
!function(){ alert("test123");}() 

uyarıları "test123'ait"

üretir gelir?

+4

http://benalman.com/news/2010/11/immediately-invoked-function-expression/ – zerkms

+0

@zerkms Bu sorunun cevabını, aslında sorunun cevabını oldukça iyi açıkladığından, muhtemelen bir cevap olarak göndermelisiniz. – Kippie

+1

c'mon, orada bir yinelenen _has_ var ... –

cevap

3

Bu nedenle, ! işaretini ekleyerek, bildirimi bir ifadeye dönüştürüp hemen çağırırsınız. parantez içine fonksiyonu içine alarak size hatasız çalışan ilk örneği yapacaktır:

(function(){ alert("test123");})() 

daha anlaşılır sizin gibi bir şey olarak ilk ifadesi düşünebiliriz yapmak için:

if (false || !function(){ return false; }()) 


Ve @zerkms Orada Immediately-invoking functions tam bir açıklama olduğunu fark etti.

+0

çok yanlış olmalı, uygun bir cevap yazamıyorum, ama ..." tanımlayıcı "doğru terim değil. Daha ziyade, ayrım bir tanım ve bir ifade arasındadır. Birincisi hemen çağrılmaz. –

+1

Doğru yol ama yanlış açıklama. ! Bildirimi bir ifadeye dönüştürür. – slebetman

+0

Bir işlevi tanımlayabilirim ve _not_ bunu çağırır: '! Function() {alert (" çağrılmayacak ")}' –

İlgili konular