جاوا اسکریپت که آن را به اختصار js نیز مینامند، زبانی اسکریپتی است که در بیشتر مرورگرهای وب به عنوان بخشی از مرورگر پیادهسازی شده است و هدف از آن بهبود بخشید واسط کابری و تولید صفحات پویای وب است. البته استفاده از جاوا اسکریپت تنها به وب محدود نمیشود. در زیر انواعی از این استفادهها ذکر شدهاست:
- در گوگل کروم برای تولید pluginها از این زبان استفاده میشود.
- در نرمافزار geogebra برای رسم شکلهای هندسی و یا تحلیل آنها استفاده میشود.
- در نرمافزار adobe acrobat اجازهی استفاده از جاوا اسکریپت در فایلهای pdf داده شده است.
var x = 0 // note that semi colon is not important
var x = 0.5; // note dynamic typing var x = "JavaScript" var x = true var x = ["java", "script"] var x = {java: "java", script: "script"} // object
شی گرایی در جاوا اسکریپت
در جاوا اسکریپت، علی رغم بحثهایی که در مورد تفاوتهای شیگرایی در جاوا اسکریپت و دیگر زبانها وجود دارد، قابلیتهای شیگرایی بسیار وسیعی موجود است.
برنامهنویسی prototype-based
برنامهنویسی prototype-based سبکی از برنامهنویسی شیگراست که در آن کلاسها حضور ندارند و استفادهی مجدد رفتارها طی فرآیندی انجام میپذیرد که اشیای موجود را به عنوان مادهی اولیه بیاراییم.
اشیای مرکزی
جاوا اسکریپت اشیایی مرکزی دارد. نمونههایی از این اشیا عبارتاند از: Math, Object, Array و String.
کلاسها
در جاوا اسکریپت کلاس به صورتی که در دیگر زبانهای برنامهنویسی مانند جاوا وجود دارد، وجود ندارد. در عوض، جاوا اسکریپت از توابع به جای کلاسها استفاده می کند:
function Person () {}
اشیا
برای ساخت یک شی از یک کلاس کافی است از new برای یک تابع استفاده کنیم؛ به مثال زیر توجه کنید:
var person1 = new Person (); var person2 = new Person ();
سازنده
در جاوا اسکریپت، نیاز به نوشتن سازنده نیست، زیرا خود تابع در زمان ساخته شدن صدا زده میشود:
function Person () {
alert ('Person instantiated');
}
صفت
خیلی شبیه C!
function Person (gender) {
this.gender = gender;
alert ('Person instantiated');
}
var person1 = new Person ("Male");
متدها
برای تعریف یک متد، کافی است به صورت زیر عمل کنیم:
function Person (gender) {
this.gender = gender;
alert ('Person instantiated');
}
Person.prototype.sayHello = function () {
alert ('Hello');
}
var person1 = new Person ('Male');
person1.sayHello ();
function Student () {
// Call the parent constructor
Person.call(this);
}
// Inherit Person
Student.prototype = new Person ();
// Correct the constructor pointer because it points to Person
Student.prototype.constructor = Student;
// Add sayGoodbye
Student.prototype.sayGoodbye = function () {
alert ('goodbye');
}
var student1 = new Student ();
student1.sayHello (); // Inherited from Person
student1.sayGoodbye ();
منابع