محمد افاضاتی

دیده ها، شنیده ها و علاقه مندی های یک برنامه نویس
يكشنبه, ۱۲ شهریور ۱۳۹۱، ۰۴:۲۲ ب.ظ

کلاس در javascript

برای هر پروژه ای نیاز به تعریف class وجود دارد. روش‌های مختلفی برای تعریف وجود دارد که چند موردش عبارت است از:
 

استفاده از function

یکی از معمول ترین روش هاست. در این حالت شما یک function تعریف می‌کنید و موارد را در context همان اضافه می کنید.

function Apple (type) {
    this.type = type;
    this.color = "red";
    this.getInfo = getAppleInfo;
}

// anti-pattern! keep reading...
function getAppleInfo() {
    return this.color + ' ' + this.type + ' apple';
}

شما می تونید با استفاده از new یک instance جدید ایجاد کنید.

var apple = new Apple('macintosh');
apple.color = "reddish";
alert(apple.getInfo());

شما می‌توانید متد های مرتبط را به صورت داخلی تعریف کنید.

function Apple (type) {
    this.type = type;
    this.color = "red";
    this.getInfo = function() {
        return this.color + ' ' + this.type + ' apple';
    };
}

یا اینکه از protoype استفاده کنید.

Apple.prototype.getInfo = function() {
    return this.color + ' ' + this.type + ' apple';
};

به طور کلی تعاریف دیگر OOP را هم می‌توانید در این تعریف‌ها پیاده‌سازی کنید.

به طور مثال پیاده‌سازی مربوط به ارث بری را ببیند.

pear.prototype = new Apple;


استفاده از Object

در javascript دیکشنری ها object هستند و شما به راحتی می‌توانید یک object جدید درست کنید.
 

var o = {};

یا اینکه از object یک instance جدید بسازید.

var o = new Object();

حالا با استفاده از این ساختار شما می‌توانید یک کلاس بسازید

var apple = {
    type: "macintosh",
    color: "red",
    getInfo: function () {
        return this.color + ' ' + this.type + ' apple';
    }
}

و به راحتی ازش استفاده کنید.

apple.color = "reddish";
alert(apple.getInfo());


استفاده از کلاس‌های آماده

کلاً مسأله class در javascript اینقدر جدی بوده که کلاس‌های زیادی برای کار با آن نوشته شده است.

همچنین ببینید



نوشته شده توسط محمد افاضاتی
ساخت وبلاگ در بلاگ بیان، رسانه متخصصان و اهل قلم

محمد افاضاتی

دیده ها، شنیده ها و علاقه مندی های یک برنامه نویس
محمد افاضاتی
محمد افاضاتی برنامه نویس python php دیتابیس های postgresql mongodb و ...

رونوشتی از علاقه مندی هایم برای ماندگار تر شدن!

تبلیغات

طبقه بندی موضوعی

Feedburner RSS

Others

توییتر

کلاس در javascript

يكشنبه, ۱۲ شهریور ۱۳۹۱، ۰۴:۲۲ ب.ظ

برای هر پروژه ای نیاز به تعریف class وجود دارد. روش‌های مختلفی برای تعریف وجود دارد که چند موردش عبارت است از:
 

استفاده از function

یکی از معمول ترین روش هاست. در این حالت شما یک function تعریف می‌کنید و موارد را در context همان اضافه می کنید.

function Apple (type) {
    this.type = type;
    this.color = "red";
    this.getInfo = getAppleInfo;
}

// anti-pattern! keep reading...
function getAppleInfo() {
    return this.color + ' ' + this.type + ' apple';
}

شما می تونید با استفاده از new یک instance جدید ایجاد کنید.

var apple = new Apple('macintosh');
apple.color = "reddish";
alert(apple.getInfo());

شما می‌توانید متد های مرتبط را به صورت داخلی تعریف کنید.

function Apple (type) {
    this.type = type;
    this.color = "red";
    this.getInfo = function() {
        return this.color + ' ' + this.type + ' apple';
    };
}

یا اینکه از protoype استفاده کنید.

Apple.prototype.getInfo = function() {
    return this.color + ' ' + this.type + ' apple';
};

به طور کلی تعاریف دیگر OOP را هم می‌توانید در این تعریف‌ها پیاده‌سازی کنید.

به طور مثال پیاده‌سازی مربوط به ارث بری را ببیند.

pear.prototype = new Apple;


استفاده از Object

در javascript دیکشنری ها object هستند و شما به راحتی می‌توانید یک object جدید درست کنید.
 

var o = {};

یا اینکه از object یک instance جدید بسازید.

var o = new Object();

حالا با استفاده از این ساختار شما می‌توانید یک کلاس بسازید

var apple = {
    type: "macintosh",
    color: "red",
    getInfo: function () {
        return this.color + ' ' + this.type + ' apple';
    }
}

و به راحتی ازش استفاده کنید.

apple.color = "reddish";
alert(apple.getInfo());


استفاده از کلاس‌های آماده

کلاً مسأله class در javascript اینقدر جدی بوده که کلاس‌های زیادی برای کار با آن نوشته شده است.

همچنین ببینید

موافقین ۰ مخالفین ۰ ۹۱/۰۶/۱۲
محمد افاضاتی function javascript object prototype class

نظرات  (۳)

ممنون :) جالب بود
۲۰ شهریور ۹۱ ، ۲۲:۰۲ مهران خواجوی
عالی بود!
ممنون 
من توی کارم از SuperClass ای که AlexMacCaw.com ساخته استفاده میکنم؛ به نظرم اون هم میتونه توی لیست‌تون جا بگیره:
https://github.com/maccman/superapp
پاسخ:
ممنون
اعمال شد

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی