سؤال

أحاول تنفيذ نموذج الوحدة النمطية الكاشفة ولكني غير قادر على الكشف عن خاصية خاصة معدلة.

var myRevealingModule = (function(){

    var name = 'Diogo';

    function setName () {
       name = name + ' Cardoso';
    }

    return {
        fullName: name,
        set: setName
    };

}());

// Sample usage:
myRevealingModule.set();
console.log(myRevealingModule.fullName); // "Diogo" instead of the excepted "Diogo Cardoso".
هل كانت مفيدة؟

المحلول

return {
    fullName: name,
    set: setName
};

يستخدم ذلك قيم ل name و setName.ولا يقوم بإنشاء مرجع إلى المتغير.على نحو فعال، name يتم نسخها.

تحتاج إلى إنشاء المقابلة getName طريقة للاستفادة من عمليات الإغلاق بحيث يمكنك الاحتفاظ بمرجع إلى متغير.

نصائح أخرى

giveacodicetagpre.

p> http://jsfiddle.net/yexmx/

إذا كانت قيمتك سمة في كائن أو صفيف، فيمكنك تصدير الكائن أو الصفيف، وسيتم التصدير بالرجوع من ذلك، لذلك سيرى المستخدمون الخارجيون إجراء تغييرات محدثة.إنه محفوف بالمخاطر القليل منذ أن يحتوي النمط العام على المتغيرات المصدرة على نسخ / كائن نسخ / مرجع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top