مقاله : مبحث Chainable در شی گرای

k2-4u

Well-Known Member
سلام به همه دوستان
اول از همه از D.A.V.O.O.D . dannydolph و eAmin تشکر می کنم که این
بحث رو وسط کشیدن
. یک مقاله در مورد Chainable ترجمه کردم و البته کمی هم زیاد و کمش کردم
امید وارم به درد دوستان بخوره .
شما به وسیله chainable می توانید متد های مثل
PHP:
$("myPanel").setStyle("border", "solid 2px #f00").setStyle("background", "#ffc").show();
را درست کنید (که در Jquery ) دیده مشه

چگونه متد های Chainable را در جاوا اسکریپ درست کنیم

در جاوا اسکریپ اگر مقدار خروجی "return " یک متد رو . مشخص نکنید . مقدار undefined رو
به صورت پیشفرز بر می گردونه
. راز ساخت chainable در مقدار return است .
که در حقیقت باعث میشه شما بتونی به مقدار یک تابع (که از return اومده ) به وسیله اپراتور "." (نقطه)
وصل بشی

یک مثال معمولی رو ببینید (بدون chainable)
PHP:
function DomElement(elementId) {  
    this.element = document.getElementById(elementId);  
}  
DomElement.prototype = {  
    setStyle: function(prop, val) {  
        this.element.style[prop] = val;  
    },  
    show: function() {  
        this.setStyle("display", "block");  
    },  
    hide: function() {  
        this.setStyle("display", "none");  
    }  
}
برای اجرای کد بالا . شما باید به صورت زیر عمل کنید
PHP:
var myPanel = new DomElement("myPanel");  
myPanel.setStyle("border", "solid 2px #f00");  
myPanel.setStyle("background", "#ffc");  
myPanel.show();
بهترین کاری که می توانید بکنید اینه که با دستور with مثال بالا رو کمی کوچیک کنید
PHP:
var myPanel = new DomElement("myPanel");  
with (myPanel) {  
    setStyle("border", "solid 2px #f00");  
    setStyle("background", "#ffc");  
    show();  
}
ولی باز هم کد ها . زیاد هستند
chainable شده مثال بالا به صورت زیر است
PHP:
function DomElement(elementId) {  
    this.element = document.getElementById(elementId);  
}  
DomElement.prototype = {  
    setStyle: function(prop, val) {  
        this.element.style[prop] = val;  
        return this;  
    },  
    show: function() {  
        return this.setStyle("display", "block");  
    },  
    hide: function() {  
        return this.setStyle("display", "none");  
    }  
}  
// Add a shortcut method for creating a DomElement object:  
$ = function(elementId) {  
    return new DomElement(elementId);  
}
برای ساخت خود کد ها
و برای اجراش هم
PHP:
$("myPanel").setStyle("border", "solid 2px #f00").setStyle("background", "#ffc").show();
به همین راحتی!!
در این آدرس هم
http://docs.jquery.com/Tutorials:How_jQuery_Works#Chainability_.28The_Magic_of_jQuery.29
سایت Jquery در این مورد کامل توضیح داده

منبع : http://updatepanel.net/2008/10/18/making-methods-chainable-in-javascript/

امید وارم که به دردتون خورده باشه :rose:
اگر سوالی هم بود . در خدمتم
 
آخرین ویرایش توسط مدیر:
دست درد نکنه.فقط تو قسمت زیر width رو عوض کن و بکنش with
بهترین کاری که می توانید بکنید اینه که با دستور width مثال بالا رو کمی کوچیک کنید
راستی اگه همه بخوان من میگم یه تاپیک راجع به شی گرایی تو js بزنیم.(یا اصلاً همین تاپیکی که الان زدی رو عنوانش رو عوض کنی و ادامش بدیم)من مقاله oop در php رو که hidensoft نوشته بود دیدم و خیلی چیز کاملی بود(فقط یکی دوتا چیز میشد بهش اضافه کرد که اونم دیدم نگم بهتره!ولی واقعاً کامل بود)حالا جاوااسکریپت خیلی جای کار داره.یه کار دیگه هم میشه کرد.تو فکر این بودم که چند تا چیز که تو اینترنت رواج داره رو آموزشش رو بزرایم.مثلاً ساخت suggestion یا قرار دادن لودینگ روی عکس یا ساخت accordions یا هزار تا چیز دیگه.مثلاً همین چیزی که الان شما آوردی به نظر من باید چندتا چیزش رو توضیح بدی تا برای کسانی هم که چیز زیادی نمیدونن کاربرد داشته باشه مثلاً with کارش چیه یا ptototype کارش چیه.به نظر من همه رو جمع کنیم یه جا بهتره .ولی حالا دوستان هم نظر بدن.
 

k2-4u

Well-Known Member
دست درد نکنه.فقط تو قسمت زیر width رو عوض کن و بکنش with

راستی اگه همه بخوان من میگم یه تاپیک راجع به شی گرایی تو js بزنیم.(یا اصلاً همین تاپیکی که الان زدی رو عنوانش رو عوض کنی و ادامش بدیم)من مقاله oop در php رو که hidensoft نوشته بود دیدم و خیلی چیز کاملی بود(فقط یکی دوتا چیز میشد بهش اضافه کرد که اونم دیدم نگم بهتره!ولی واقعاً کامل بود)حالا جاوااسکریپت خیلی جای کار داره.یه کار دیگه هم میشه کرد.تو فکر این بودم که چند تا چیز که تو اینترنت رواج داره رو آموزشش رو بزرایم.مثلاً ساخت suggestion یا قرار دادن لودینگ روی عکس یا ساخت accordions یا هزار تا چیز دیگه.مثلاً همین چیزی که الان شما آوردی به نظر من باید چندتا چیزش رو توضیح بدی تا برای کسانی هم که چیز زیادی نمیدونن کاربرد داشته باشه مثلاً with کارش چیه یا ptototype کارش چیه.به نظر من همه رو جمع کنیم یه جا بهتره .ولی حالا دوستان هم نظر بدن.
ببخشید برای with (فکر کنم پیر شدم !!)

بله موافقم . در جاوا اسکریپ . چون class هم نداره
کلی راه و طرفند. برای کار با شی ها و متد ها داره
که نیاز رو جبران کنه

اگر می شد عنوان . تاپیک رو عوض کرد این کارو می کردم
. سعی می کنم الان یه تاپیک بزنم
 

k2-4u

Well-Known Member
خب دوستان به پیشنهاد dannydolph دارم یک مقاله کامل در مورد
شی گرائی در جاوا اسکریپ می نویسم که
بزودی آماده میشه و در یک تاپیک جدا می گذارمش :rose:
 
خب دوستان به پیشنهاد dannydolph دارم یک مقاله کامل در مورد
شی گرائی در جاوا اسکریپ می نویسم که
بزودی آماده میشه و در یک تاپیک جدا می گذارمش :rose:
دستت درد نکنه.تو شروع کن مثل seo یی که نوشتی انشاالله هم چیز کاملی میشه هم سعی کنیم ادامش بدیم که واسه خودش مرجعی بشه.:rose:
 

جدیدترین ارسال ها

بالا