واژه Abstraction یکی از مفاهیم در برنامهنویسی شی گرا (OOP) است؛ که به منظور نمایش سیستمهای پیچیده به صورت ساده مورد استفاده قرار میگیرد. در جاوا اسکریپت abstraction به شما امکان تعریف به صورت ساده کلاس ها یا آبجکتها با پیچیدگیهای زیربنایی را میدهد.
مفهوم abstraction راهی برای پنهان نمودن جزئیات پیادهسازی و نشان دادن تنها عملکرد به کاربران است. به عبارت دیگر جزئیات بیربط را نادیده میگیرد و فقط مورد نیاز را نشان میدهد.
برای مثال کلاس Shape را در نظر بگیرید که مجموعهای از ویژگیها و متدها را اشکال هندسی تعریف میکند. یکی از روشها را میتوان getArea نامید که مساحت یک شکل را برمیگرداند.
در این کد متد getArea رو به عنوان Abstract است، زیرا پیادهسازی (implementation) ندارد. این کار هر کلاس مشتق شده را که از Shape به ارث میبرد، مجبور میکند تا یک پیادهسازی برای این روش ارائه دهد.
بنابراین میتوان گفت " Abstraction راهی برای اعمال برخی رفتارها فراهم میکند که باید توسط کلاسهای مشتق شده پیادهسازی شوند. "