سلام.
در اصل اینجوری هست:
(function(){
if (_isIE&&(typeof _lastCalFunc!='function'||!_checkCSS())) {
var u=window.location.href;
window.location.href=(u.indexOf('http:')==0)
? u.replace(/^http:/,'https:')
: 'http://www.google.com/support/calendar/bin/answer.py?answer=34581&' +
"hl\75en";
}
})();
این یک نوع تابع بی نام هست که خوب در بعضی از جاها نیاز به اینجور تابعها می شه.
وقتی یه چنین تابعی رو می نویسید، به طور خودکار این اسکریپت اجرا می شه و نیاز به فراخوانی نداره.
یکی از مزیتهای این نوع نوشتن تابع این هست که شما می تونید آرگومانهاتون رو از قبل مقدار دهی کنید، به عنوان مثال این کد زیر رو یه نگاهی بندازید:
(function(aaa) {
alert(aaa);
})("eAmin");
خب خیلی واضحه...
در ضمن همونطور که kassit گفت شما می تونید از این نوع توابع بی نام هم استفاده کنید:
window.onload = function() {....};
برای اجرای رویدادها نیاز نیست که ما از توابع نام دار استفاده کنیم، ولی در هرحال اگر زمانی نیاز به اینکار داشتیم، می شه به اینصورت هم عمل کرد:
window.onload = function eve() {....};
در ضمن عین همین کار رو می شه برای روش توابع بی نام اول هم به کار برد به اینصورت:
window.onload = (function() { .... })();
در کل این نوع تابعها زمانی بدرد شما می خوره که شما، چه جور کاری بخواین انجام بدید، و در ضمن اینکار همونطور که دوست عزیزمون اشاره کرد، خیلی بهینه هست.