اول باید بدونیم معنی موجودیت درجه یک یا First class entity چی هست.

توی یک زبان برنامه‌نویسی، موجودیت‌ها مثل متغیرها و توابع، یک سری عملیات مثل پاس داده‌شدن به‌عنوان یک آرگومان، به خروجی فرستاده شدن توی یک تابع، ویرایش شدن و به یک متغیر نسبت داده شدن رو رو پشتیبانی می‌کنن. یک موجودیت درجه یک به موجودیتی گفته میشه که از همه‌ی عملیات پشتیبانی کنه! به موجودیت درجه یک، آبجکت درجه یک هم گفته میشه.

توابع توی جاوااسکریپت موجودیت‌های درجه یک هستن. یعنی می‌تونن به عنوان یک آرگومان به یک تابع دیگه پاس داده بشن، به عنوان خروجی یک تابع در نظر گرفته بشن و به یک متغیر نسبت داده بشن. توی کد زیر همه‌ی این عملیات رو می‌بینیم:

var func = function passAsArg(value, callback) {
    return callback(value);
}

func('value', alert);

 

منبع: