PDA

View Full Version : سوال در مورد این syntax



soroush.elec
جمعه 14 تیر 1392, 16:04 عصر
سلام دوستان به کد زیر توجه کنید

(function drawFrame () {

}());

من معنی استفاده از این پرانتزهای اضافه در اول و آخر تعریف فانکشن را نمی فهمم.

jalil_gh
جمعه 14 تیر 1392, 16:21 عصر
به اینا میگن self executing function . یعنی وقتی تابع رو اینجوری تعریف میکنی، همون موقع که تابع تعریف میشه بلافاصله اجرا میشه.

afshin9032
سه شنبه 18 تیر 1392, 13:46 عصر
تو پیاده سازی پلاگین های jquery هم این روش زیاد استفاده میشه .

cups_of_java
سه شنبه 18 تیر 1392, 14:29 عصر
این یه تابع ساده هست:
function() {
}

هر وقت شما یه چیزی و جلوش مثل تابع پرانتز باز بسته کنی اون رو اجرا میکنی (مثل خود یه تابع که اجرا میشه با پرانتز باز بسته جلو اسمش) فقط این تابع اسم نداره و بو قول دوستمون خودش خودشو فقط اجرا میکنه نه دیگران
(...)()

و نهایتن کل اینا رو توی یه ;() میزاری که حوزه جدیدی تعریف کنی و کلن میشه:

(function(parameters){ code... }(arguments));

این کار رو برای چی میکنن؟
برای اینکه شما یه حوزه Private درست کرده باشی که همه چی Local اون باشن و دیگران بیرون اون کد هر چیزی توی اون کد رو نبینن! این کار در Javascript سمت مرورگر و پلاگین ها همونطور که بچه ها گفتن خیلی انجام میشه تا اسامی متغیر ها و متد ها یا هم قاطی نشن و هر کدی قابل مدیریت باشه و همه دل و رودش بیرون نریخته باشه.