<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های mohsen محسن</title>
        <link>https://virgool.io/feed/@mohsen_barati</link>
        <description>از سال 81 با flash و actionscript برنامه های مالتی مدیا میساختم ، از 84 طراحی وب ، از 89 php ، از 92 اندروید و جاوا ، از 96 تمرکزم روی جاوااسکریپت هست</description>
        <language>fa</language>
        <pubDate>2026-06-07 13:40:44</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>mohsen محسن</title>
            <link>https://virgool.io/@mohsen_barati</link>
        </image>

                    <item>
                <title>پیشنهادهایی برای حذف noise از زندگی</title>
                <link>https://virgool.io/@mohsen_barati/tips-on-calming-the-noise-of-life-lh658mkxk8qu</link>
                <description>این مطلب رو در حالی می نویسم که در آخرین روز سال ۹۷ تو تعطیلات توی یک شهر نسبتا خوش آب و هوا و آروم شُل کردم و دارم به مرور و جمع بندی و برنامه ریزی برای سال جدید می رسم.من اهل خوندن مطالب طولانی نیستم، بنابراین سعی میکنم این مطلب رو تا حد امکان کوتاه بنویسمنویز noise چیه ؟مشخصا هرچیز فرعی که تمرکز شما رو از مسیر اصلی زندگی میگیره و منحرف میکنه، چشم باز میکنی می بینی سالها پشت سر هم رفتن و گران ترین سرمایه جهان هستی یعنی زمان رو از دست دادی و تو موندی و کلی کار انجام نشده و هدف هایی که بهشون نرسیدیپیشنهادهایی برای حذف نویز noise از زندگیاکانت های شبکه های اجتماعی خودتون رو تاحد ممکن محدود کنید یا از ابزارهایی برای محدود کردن امکان استفاده روزانه از اپ ها استفاده کنید.اگر تو محیط کارتون باسوادترین و باهوش ترین و بالاترین هستید بدون درنگ از اونجا فرار کنید، مهم نیست حقوقتون چقدره یا چقدر آزادی دارید مهم اینه که این آخرین جایی هست که بالاترین هستیدقطعا هیچ یادگیری و پیشرفتی دیگه اونجا منتظر شما نیست و فقط اگر عقده ی بالاتر بودن و مورد تعریف و تمجید بودن دارید می تونید تو همچین محیطی عقده هاتون رو ارضا کنید.!دوستان تون رو محدود کنید به تعدادی آدم موفق تر، پر تلاش تر و باهوش تر از خودتون، حتی اگر ۱۵ سال از شما کوچک تر هستن.نگران از دست دادن رفقای عشق و حالتون نباشید، اولا که پایه عشق و حال همه جا ارزون به دست میاد و قشنگیش هم به تنوعش هست :) دوما که زمانی که به دستاوردهای بزرگتری رسیدید همون ها یا بهترشون میان سراغ تون و تحسین میکنن شما رو .از هر جمع دوستانه یا هر فردی که شما رو خیلی آدم خفنی میشناسه ( مگر اینکه کارفرما یا مشتری تون باشه و همونقدر هم پول میده و به شرطی که اینقدر احمق نیستید که خودتون هم باورتون بشه ) فرار کنید.خواه ناخواه حرف آدمها رو مغز آدم تاثیر میزاره و آدم دچار توهم میشه!!یادمه زمانی حکایتی میخوندم از مردی که ادعای پیامبری کرده بود و اینقدر مردم باورشون شده بود و به این جو داده بودن که خودش هم باورش شده بود و درنهایت در جریان نشون دادن یکی از معجزاتش که رفتن تو ظرف اسید و سالم برگشتن بود، خودشون به کشتن دادحواستون باشه متوهم نشید و خودتون رو به کشتن ندیداگر لازمه پول بدید و برای خودتون دوستان خوب بخرید، آدمهایی که بواسطه ی ارتباط باهاشون در مسیر چالش های یادگیری و پیشرفت قرار میگیرد، همه دیگران رو حدالمقدور حذف یا محدود کنید!احتمالا برای یک آدم بالغ داشتن یک رابطه پایدار امری طبیعی به نظر میاد، اما بهتره بررسی کنید واقعا چه بهایی برای این رابطه می پردازید؟روزی چند ساعت وقتتون به چت و تلفن و مسیج و ... میگذره؟ اینا چه کمکی به پیشرفت و مسیر زندگی تون کرده ؟آیا دچار اعتیاد جنسی یا ترس از تنهایی هستید؟ آیا واقعا این رابطه در جهت پیشرفت دوطرفه تون هست؟امکان مدیریت زمان تو رابطه رو دارید؟ اگر بخواید زمان هایی که برای طرفتون رو میزارید کمتر کنید یا مدیریت شده پیش برید مجبور به اتمام رابطه میشید؟بودن یا نبودن این فرد تو زندگی شما چه تاثیری در موفقیت و پیشرفت شما داره؟اگر روزی توی زندگی تون حسابی زمین بخورید  آیا  این دوستتون کاری جز کنارتون موندن و غصه خوردن از دستش برمیاد؟ :) یا اینکه میتونه کمک تون کنه دوباره بلند بشید و به راهتون ادامه بدید ؟ :)خودتون رو ملزم رو به پاسخگو بودن در مقابل خودتون کنید، مشکل اکثر ما اینه که اینقدر که خودمون رو در مقابل دیگران مسئول میدونیم در مقابل خودمون نمیدونیمهر روز برای خودتون حداقل ۱ تسک یادگیری داشته باشید و خودتون رو ملزم بدونید مثل یک کارمند اون تسک رو انجام بدید.گزارش کار روزانه تون رو بصورت صوتی یا متنی ذخیره کنید تا بعدا قابل بررسی باشهاگر کاری رو شروع کردید تا تموم شدنش ( حتی اگر ۵ سال طول کشید ) ادامه بدید، ادامه دادنِ طولانی سخته و آدمهایی هستن که ناخواسته ممکنه با حرف هاشون یا دیده شدنشون این مسیر رو برای شما سخت تر هم بکنن ، فاصله تون رو با این افراد حفظ کنید :)اینا چیزایی بود که به نظر من رسیدند، خوشحال میشم اگر شما هم موردی دارید بهش اضافه کنید</description>
                <category>mohsen محسن</category>
                <author>mohsen محسن</author>
                <pubDate>Wed, 20 Mar 2019 19:09:23 +0330</pubDate>
            </item>
                    <item>
                <title>داستان Prototypal Inheritance در جاوااسکرپیت به زبان خیلی ساده</title>
                <link>https://virgool.io/JavaScript8/prototypal-inheritance-in-javascript-bukwvucno3q1</link>
                <description> من خودم شدیدا از خوندن متن های طولانی متنفر هستم و تا حد ممکن سعی میکنم طولانی هم ننویسم، اما احتمالا این متن به دلایل فنی طولانی میشه ولی امیدوارم خوندنش خسته کننده نباشهصلب مسئولیتتو این متن سعی شده مسئله Prototypal Inheritance در javascript بصورت خیلی ساده و روان بیان کنم، بنابراین ممکنه از گفتن برخی مسائل بصورت فنی تخصصی اجتناب شده باشه و برخی چیزها به بیان خیلی عامیانه گفته شده باشهمطلب خوبی به فارسی پیدا نکردم وگرنه احتمالا منم نمی نوشتم :))قطعا شما سوادتون از من بیشتره :))غلط دیکته ای های بنده رو به بزرگی خودتون ببخشیدخود Inheritance  چیه اصلا ؟خب قطعا اگر قبلا با یکی از زبان های برنامه نویسی شی گرا ( object oriented) کار کرده باشید میدونید که یکی از اصول این مدل برنامه نویسی همین ارث‌بری یا Inheritance هست. به بیان ساده وقتی  یک   instance object  از یک class میسازید و یا زمانی که یک class رو از یک class دیگر extend می کنید، اون object و class جدید تمام methodها و propertyهای کلاسِ مادر رو به ارث می‌برند و میتونن از اونها استفاده کنن، علاوه بر این خود اینها میتونن یکسری متد و خصوصیت جدید برای خودشون داشته باشند و یا method ها و propertyهای ارث برده شده رو برای خودشون override کنند.حالا Prototype چی میگه ؟خب javascript  ( یا همان بیشعور بزرگ ) چیزی به اسم class نداره/نداشت ( تا قبل از ES6 )  و برای اینکه بدونیم Prototype چیه ، از اینجا شروع میکنیم که :تو javascript  برای پیاده کردن class از function ها استفاده میشدفانکشن‌هایی که برای ایجاد یک instance object از اونها از دستور new استفاده میشه، فانکشن‌های سازنده یا constructor functions گفته میشن، به کد زیر دقت کنید:function myFunc(){ // constructor functions 
   this.myProperty = &quot;My Property &quot;;
 }
 var myObj = new myFunc();همه functionها ( حتی اونایی که هیچ کاری نمیکنن و خالی هستن ) تو javascript  خودشون object هستندهمه functionها تو javascript بدون اینکه شما براشون چیزی تعریف کنید یا بدونید، بصورت پیشفرض یک property مخفی به اسم prototype دارند ( که یک object برمیگردونه )  مثل کد زیر می تونید بهشون دسترسی پیدا کنید :function hichi(){
        // I do nothing
}
console.log(typeof hichi.prototype); // object شما میتونید methodهای دلخواه خودتون رو به prototype یک فانکشن اضافه کنید:function myFunc(){ 
      this.myProperty = &quot;My Property &quot;; 
 }
 myFunc.prototype.myMethod = function() {
   console.log(&#039;this is my method&#039;);
};و اگر از اون فانکشن یک instance object  بسازید، آبجکت جدید ما میتونه به متدهای prototype اون فانکشن مادر دسترسی داشته باشه : function Mom(){
          this.momProperty = &quot;My Property &quot;;   
 }  
 Mom.prototype.speak= function() {    
   console.log(&quot;I&#039;m speaking&quot;);
  }; 
  
 var child= new Mom();
child.speak(); // I&#039;m speakingدقت کنید در قطعه کد بالا child صرفا از طریق مادرِ خودش یعنی Mom به متد speak دسترسی داره و در واقع speak در child.prototype وجود نداره به عبارتی :child.hasOwnProperty(&#039;speak&#039;) === false) که تو javascript به این مدل ارث‌بری میگیم  Differential Inheritanceخب  Object.create چیکار میکنه ؟این فانکشن هم که از es5 اضافه شده، یک آبجکت خالی برای ما میسازه که به متدها و خصوصیات فانکشن مادرش دسترسی داره به این قطعه کد دقت کنید : var parent = {
  foo: function() {
    console.log(‘bar’);
   }
};
var child = Object.create( parent );
child.hasOwnProperty(‘foo’); // false
child.foo(); // ‘bar’بریم سراغ مثال‌های جدی تربه قطعه کد زیر دقت کنید : function Rectangle( width, height ) {
    this.width = width;
    this.height = height;
}
Rectangle.prototype.area = function() {
    return this.width * this.height;
}; 
var mrect = new Rectangle( 3, 4 );
mrect.area(); // 12دیدید که چطوری mrect از Rectangle ارث‌بری میکنه، حالا فرض کنیم ما یک فانکشن سازنده دیگه به اسم  Square داریم function Square( length ) {
    this.width = this.height = length;
}حالا چیکار کنیم که Square از Rectangle ارث‌بری کنه ؟ (دقت کنید Square دیگه یک آبجکت خالی نیست) خیلی ساده است : Square.prototype = Object.create( Rectangle.prototype );از این به بعد تمام instanceهایی که از Square ساخته بشن از خود Square ارث می‌برن و چون Square از Rectangle ارث برده، همه اونها به متدها و خصوصیات Rectangle دسترسی خواهند داشت :  var mInstance= new Square( 4 );
mInstance.area(); // 16خب تقریبا کلیت چیزی که باید میدونستیم همینهحالا __proto__ ماجراش چیه ؟ببین شما تو فانکشنِ Parentخصوصیتِ prototype رو دارید،  زمانی که بچه به دنیا میاد :) یعنی child از parent ساخته میشه خصوصیت __proto__ در child معادل prototype در Parent میشه با کد توضیح بدم بهتر می فهمید :function Parent(){
    this.name = &quot;parent&quot;;
}
var child = Object.create( Parent.prototype );
console.log( Parent.prototype === child.__proto__ ); // trueیک مثال بهتر : function Parent(y) {
        this.y = y;
  }
Parent.prototype.x = 10;
Parent.prototype.speak= function (z) {
        return this.x + this.y + z;
  };
var child= new Parent(20);
child.speak(30); // 60
console.log(
  child.__proto__ === Parent.prototype, // true
  child.__proto__.speak=== Parent.prototype.speak, // true
  child.__proto__.speak=== child.speak, // true
  Parent === child.constructor, // true
  Parent=== Parent.prototype.constructor   // true
  );حالا بیاید این چیزایی که یاد گرفتیم رو مقایسه کنیم با Class Inheritance تو جاوااسکریپت جدیدخب شبیه به بقیه زبان های برنامه نویسی تعریف کلاس و ارث‌بری ازش به شکل زیر قابل انجامهclass Parent{
	constructor() {
	    this.name = &quot;Parent&quot;;
	  }
	speak(){
		 console.log(this.name+&quot; speaks!&quot;);
	} 
}

class child extends Parent{
 	constructor(name) {
 		super();
     		this.name = name ;
       }
}

var mohsen= new child(&quot;mohsen&quot;);
mohsen.speak(); // mohsen speaksاگر نکته ای داشتید خوشحال میشم به مطلب من اضافه کنیدو اینکه اگر توسعه دهنده جاوااسکریپت خوبی هستید کلی موقعیت شغلی هر روز برای شما اینجا هست و یک رویداد خفن هم بزودی برگزار میشه که اینجا می تونید اطلاعات بیشتر رو پیدا کنید استخدام</description>
                <category>mohsen محسن</category>
                <author>mohsen محسن</author>
                <pubDate>Wed, 26 Dec 2018 21:23:12 +0330</pubDate>
            </item>
            </channel>
</rss>