في الجافا سكريبت هل هناك فرق بين
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());
التعليقات