PDA

View Full Version : حرفه ای: تفاوت نام گذاری function



amirali0079
جمعه 11 اردیبهشت 1394, 16:28 عصر
سلام تفاوت این 2 کد چیست ؟

var myFunction = function() {}



function myFunction() {}

?

Ali Atom
شنبه 12 اردیبهشت 1394, 11:58 صبح
سلام. مورد اول رو بهش Function expression گفته میشه و به حالت دوم Function Declaration. تفاوتشون اینجاست که وقتی شما از function declaration استفاده کنید این تابع قبل از اجرای کد load میشه که اصطلاحا به این مورد میگن hoisting. بیان ساده ترش اینه که شما میتونید توی کدتون قبل از اعلان تابع ازش استفاده کنید.
sum(2, 3) //"5"
function sum(x, y) {
return x + y; }
ولی اگه از function expression استفاده کنید تابع زمانی اجرا میشه که مفسر به اون خط از کد برسه.یعنی اینکه نمیتونید از تابع قبل از تعربفش استفاده کنید.
sum(2, 3) //Error
var sum = function(x, y) {
return x + y;
}