Альтернатива объявлению const в скрипте листов Google - PullRequest
3 голосов
/ 19 января 2020

Я понимаю, что листы Google не поддерживают const объявление

В настоящее время я использую var на глобальном уровне. Это, конечно, позволяет делать дубликаты объявлений с одинаковыми именами. Можно определить следующие глобальные операторы в двух разных файлах сценариев внутри одного и того же проекта.

var name = "Jhon";
var name = "Sam";

На самом деле будет выполняться только последний загруженный файл.

Каков наилучший метод? чтобы избежать этого, если таковые имеются вообще?

Ответы [ 4 ]

1 голос
/ 20 января 2020

К сожалению, Apps Script не поддерживает константы (они были выпущены в ECMA6 ), так как он в основном основан на Javascript 1.6 (или ECMA4 ) с некоторыми функциями 1.7 и 1.8.

Однако в Issue Tracker имеется запрос функции с просьбой о реализации этих функций. Вы можете нажать на звездочку рядом с номером проблемы, чтобы придать больший приоритет запросу и получать обновления. Есть планы по его реализации, но пока нет конкретной даты выпуска c.

0 голосов
/ 19 февраля 2020
0 голосов
/ 28 января 2020

mgarcia, не уверен, что понимаю. У меня есть скрипт с многими функциями. Я хотел бы иметь некоторые константы, которые будут использоваться во всех функциях, поэтому объявление чего-либо внутри 'myFun c' бесполезно. Я спрашиваю еще раз, вы предлагаете заключить весь сценарий в круглые скобки. Таким образом, на самом деле ничто не «самоизвлекается», как позволяет IIFE. поэтому код будет выглядеть так

( //open IIFE

  var ConstName = "Const1";

  function f1(){
    Logger.log(ConstName);
  }

  function f2(){
    Logger.log(ConstName);
  }

) //Closing IIFE - omitting self-extract 

Это так?

0 голосов
/ 19 января 2020

Если у вас возникают проблемы с конфликтом переменных, потому что они определены глобально, вы можете попробовать инкапсулировать ваш код в IIFE .

Поскольку функции создают новые области видимости, переменные, используемые внутри IIFE доступ к нему возможен только внутри него.

Например, вы можете получить файл типа:

(function() {
    var globalVarInsideFunction = 'value';

    function myPrivateFunc() {
        // Here you can use globalVarInsideFunction.
    }
})();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...