Хранить переменные и функции в документе - PullRequest
0 голосов
/ 10 июля 2020

Я создаю веб-приложение, в котором я загружаю главную страницу с собственным javascript файлом в индексе. html тогда навигация вызывает все другие страницы в div без обновления браузера sh с использованием $. ajax и прикрепление спецификаций c скрипта для каждой страницы в div также с помощью $ .getScript.

Иногда мне нужно получить доступ к методу, объявленному на главной странице javascript из загруженного div javascript, поэтому обычно я прикрепляю к документу основной метод, например, вместо того, чтобы просто:

let doThis = function(num){
// do your stuff
}

я делаю это

document.doThis = function(num){
// do your stuff
}

Таким образом, я могу легко получить к нему доступ из любого другого javascript файл загружен на разных уровнях.

Дело в том, что я считаю, что это не очень хорошая практика, что тогда будет хорошей практикой? или приемлемо?

1 Ответ

0 голосов
/ 10 июля 2020

Если вы не используете какой-либо сборщик, то в качестве хорошей практики можно использовать « Revealing Module Pattern ». Это позволит синтаксису быть более согласованным и в этом случае упростит определение того, к каким функциям можно получить доступ глобально.

window.mainPageModule = (function () {

    var privateVar = "abcd",

    function privateFunction() {
        //Do some private stuff here
    }

    function publicSetValue(value) {
        privateVar = value;
    }

    function publicGetValue() {
        return privateVar;
    }


    // Reveal desired functions to public

    return {
        doThis: publicSetValue,
        getThis: publicGetValue
    };

})();

Затем для доступа к функции publi c в любом месте глобально

mainPageModule.doThis("1234")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...