PDA

View Full Version : ارث بری در جاوا اسکریپت



آرام جان گل
یک شنبه 17 آذر 1387, 14:10 عصر
سلام

ارث بری در جاوا اسکریپت به چه صورت است من این متن را یه جایی خوندم ولی نمی فهمم Prototype چیه؟

اون متنی که خوندم:


در زبان های شی گرا از قبیل #C و JAVA و VB.NET خاصیت وراثت مبتنی بر کلاس ها (Class Based) می باشد. یعنی شما می توانید کلاس هایی بسازید که تمامی اعضایی که به صورت Public یا Protected در کلاس والد (Parent) می باشند را به ارث برده و مورد استفاده قرار دهند. به این کلاس ها، کلاس های فرزند(Child) گویند.
ولی در زبان جاوا اسکریپت سناریو به شکل متفاوتی است زیرا در این زبان در حقیقت کلاس وجود ندارد و کلاس به صورت شبیه سازی شده وجود دارد و وراثت به شکل مبتنی بر prototype یعنی prototype-based می باشد. و تمامی خصوصیات و متدها از آبجکت prototype به ارث می روند.
لطفا راهنمایی کنید

مرسی

raravaice
یک شنبه 17 آذر 1387, 15:13 عصر
شما میتونید با ساخت هر Object و با استفاده از prototype توابع اون کلاس رو تعریف کنید.

موفق باشید

amirrezan
سه شنبه 06 مرداد 1388, 03:02 صبح
اگه امکان داره یکی بیشتر توضیح بده

امید امرایی
سه شنبه 06 مرداد 1388, 11:40 صبح
سلام

وراثت به اون شکلی که در زبان های شی گرا رایجه در جاوااسکریپت وجود نداره.
اما کتابخانه prototype متد های برای شبیه سازی این کار پیاده سازی کرده که با دانلود و مطالعه مستنداتش می تونید این کار رو انجام بدید

rostamkhani
دوشنبه 29 خرداد 1391, 13:04 عصر
سلام
این یک مثال
https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Inheritance

function A(a) {
this.varA = a;
}
A.prototype = {
varA: null,
doSomething: function () {
alert(1);
}
}
function B(a, b) {
A.call(this, a);
this.varB = b;
}
B.prototype = Object.create(new A(), {
varB: { value: null, enumerable: true, configurable: true, writable: true },
doSomething: { value: function () { // override
A.prototype.doSomething.apply(this, arguments); // call super
// ...
}, enumerable: true, configurable: true, writable: true
}
})

var b = new B();
b.doSomething();