JavaScript: текстовые сообщения о глобальных переменных? - PullRequest
3 голосов
/ 02 января 2012

Я читал свой файл javascript, и мне пришло в голову два вопроса:

1) У меня 26 строк текста, которые я использую, и некоторые из них повторяются в нескольких функциях.Поэтому я подумал, что если будет хорошей идеей объявить все их как глобальные переменные?

2) 95% моего кода - это JavaScript, остальное - JQuery.Логика очень проста.Стоит ли конвертировать весь мой JS-код в JQuery?

Пример кода:

    email = document.getElementById('email').value;
    document.myForm.submit();

Ответы [ 3 ]

4 голосов
/ 02 января 2012

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

Однако я бы предпочел сгруппировать словарь в один объект или модуль. Это уменьшило бы беспорядок в глобальном пространстве имен, указывало бы, что переменные связаны, и позволяло бы вам итерировать и манипулировать ими лучше (если вы хотите это сделать). То же самое объясняется использованием массивов вместо переменных x1, x2, ..., xn.

//setting up the strings
var strings = {
    //string id : string value
    'a' : 'a string',
    'b' : 'another string'
};

//using the strings
console.log( strings.a );
console.log( strings.['a'] );

Кроме того, jQuery - это просто библиотека Javascript. На самом деле я не вижу причин пытаться преобразовать код (и рискую случайно его взломать), учитывая информацию, которую вы нам дали.

2 голосов
/ 02 января 2012

1) В соответствии с вашим сценарием вы можете объявить как Global, если вы чувствуете, что глобальную переменную лучше писать, чем жестко кодировать везде.

2) Jquery - это JavaScript-фреймворк (ajax)

 document.getElementById('email')    is faster than $("#email")

так что лучше сохранить javascript и посмотреть, есть ли у вас сложный код, который Jquery делает с минимальными усилиями, тогда вы можете использовать его в этих местах.

2 голосов
/ 02 января 2012

1) если вам нужен доступ к этим строкам везде, может быть лучше определить только одну глобальную переменную, в которой вы храните все строки (это может быть array или object), в противном случае рассмотрите возможность группировки этих функций в замыкание (так называемая «непосредственно выполняемая функция») и затем объявление этого массива (или объекта) внутри созданной области видимости. например,

 (function() {
     var hastrings = {
         'string1' : 'value1',
         'string2' : 'value2',
         ...
     };

     /* all functions using common strings here */

 }());

2) Это зависит от того, вы должны учитывать, сколько LOC вы бы написали, используя вместо этого только конструкции jQuery, но помните, что некоторые инструкции могут быть более производительными при использовании прямого javascript (потому что вы всегда вызываете функцию jQuery) , Так что нет однозначного ответа. Он может варьироваться в зависимости от того, что делает ваш код, насколько он сложен и как вы его структурировали.

...