Bir bildirimle yapamayacağınız bir işlev ifadesiyle yapabileceğiniz bazı şeyler vardır.
hemen çağrılabilir olabilir ve bundan küresel ad alanında değilseniz değişken
saklanan dönüş değeri, bir küresel
oluşturmak için
var
anahtar kelimeyi çıkarabiliyordunuz
DÜZENLEME:
İşte hemen bir çağrı için bir örnek. Hemen çağrılan işlevde bulunan değişkenlere ve parametreye erişimi olan myFunctionName
değişkenine bir işlev döndürür.
var myFunctionName = function(v) {
// do something with "v" and some scoped variables
// return a function that has access to the scoped variables
return function() {
// this function does something with the scoped variables
};
}('someVal');
// now this function is the only one that has access
// to the variables that were scoped in the outer expression.
myFunctionName();
Burada işlev sayısal bir değerini korumaktadır bir örnek verilmiştir. Sayımı eklemek için bir sayı vererek tekrar tekrar işlevini çağırabilirsiniz. Geçerli değere her zaman başvurur, böylece her çağrı birikimlidir.
Örnek: Bu işlev bildiriminde biraz daha farklı bir davranış olan bir işlev ifadesi, adıhttp://jsfiddle.net/5uuLa/1/
var counter = function(value) {
return function(addValue) {
value += ~~addValue;
return value;
};
}(10); // initialize with a value
// each call builds on the result of the previous
console.log(counter(2)); // 12
console.log(counter(5)); // 17
console.log(counter(3)); // 20
console.log(counter(7)); // 27
console.log(counter(1)); // 28
ilk yanıt Makaleyi Oku - http://stackoverflow.com/questions/1013385/what-is-the-difference-between- a-function-expression-vs-declaration-in-javascript Makaleye doğrudan bağlantı - http://kangax.github.com/nfe/ – leebriggs