في الجافا سكريبت ما الفرق بين this.function و var function

في الجافا سكريبت هل هناك فرق بين

 function () {
  var myfun = function () {
      return 1
  }
}

و

function () {
  this.myfun = function () {
      return 1
  }
}
يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

فائدتها عند إنشاء مكتبة خاصة بك بإستخدام javaScript فهي تكافيء محددات الوصول public و private في اللغات الأُخرى بمعنى أن استخدام this مع دوال وخصائص الفئة يعني انها عامة public ومرئية وقابلة للإستخدام من خارج الفئة أما إستخدام الكلمة المحجوزة var يعني أن المُتغيرات والدوال خاصة private بالفئة ولا يُمكن الوصول لها من خارجها المثال التالي يوضح ما أقول:

var lib = (function(){
    var x = function(){
        return 1;
    }
    this.y = function(){
        return 0;
    }
    return this;
})();
// ستعود بالقيمة 1
alert(lib.y());

// الدالة غير مُعرفة
alert(lib.x());

شكرااا :D