Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.12.2016, 19:12
Аспирант
Отправить личное сообщение для Sergey and Посмотреть профиль Найти все сообщения от Sergey and
 
Регистрация: 06.12.2016
Сообщений: 44

объявить переменную один раз
Можно сделать что бы переменная объявлялась только один раз? Как то так
var counttime;
if(tepeof counttime === "undefined"){
    var counttime=0;
}
Ответить с цитированием
  #2 (permalink)  
Старый 19.12.2016, 20:33
Аспирант
Отправить личное сообщение для fuckingquest Посмотреть профиль Найти все сообщения от fuckingquest
 
Регистрация: 28.10.2016
Сообщений: 70

Sergey and,
В JS, объявление переменной не требуется, и такого понятия, как объявление, практически нет. срзазу присваивание. Если Вы делаете псевдообъявление, как в вашем примере, эта переменная просто сеттится в undefined
Ответить с цитированием
  #3 (permalink)  
Старый 19.12.2016, 21:11
Аспирант
Отправить личное сообщение для Sergey and Посмотреть профиль Найти все сообщения от Sergey and
 
Регистрация: 06.12.2016
Сообщений: 44

Уже прочитал. Сильно не ругайте я с javascript только начал разбираться. Есть проблема переменная переопределяется или перезаписывается.(
worker.js
var connected = false;
var data=1;
self.addEventListener("connect", e => {
  e.source.addEventListener("message", ev => {
    if (ev.data === "start") {
      if (connected === false) {
               connected = true;
      } else {
      

      }
    }
  }, false);
  e.source.start();
}, false);

Если открываю новую вкладку то переменные data и connected  перезаписываются (
index.html
<script>
    let worker = new SharedWorker('worker.js');
    worker.port.addEventListener("message", e => {
      console.log(e.data);
    }, false);
    worker.port.start();
    worker.port.postMessage("start");
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 19.12.2016, 21:18
Аспирант
Отправить личное сообщение для fuckingquest Посмотреть профиль Найти все сообщения от fuckingquest
 
Регистрация: 28.10.2016
Сообщений: 70

в ES6 есть const, кроме того, можно использовать объекты сконфигурированные как иммутабельные. В старых версиях в таком явном виде, видимо, никак. Можно использовать замыкания, с внутренними присваиваниями.
Ответить с цитированием
  #5 (permalink)  
Старый 19.12.2016, 21:28
Аспирант
Отправить личное сообщение для Sergey and Посмотреть профиль Найти все сообщения от Sergey and
 
Регистрация: 06.12.2016
Сообщений: 44

ссылку бы на пример, или ключевые слова по которым гуглить.
Ответить с цитированием
  #6 (permalink)  
Старый 19.12.2016, 21:31
Аспирант
Отправить личное сообщение для fuckingquest Посмотреть профиль Найти все сообщения от fuckingquest
 
Регистрация: 28.10.2016
Сообщений: 70

ну, я же сказал, const
const a = 1
try{a = 2}catch(e){alert(a)}
Ответить с цитированием
  #7 (permalink)  
Старый 19.12.2016, 21:35
Аспирант
Отправить личное сообщение для fuckingquest Посмотреть профиль Найти все сообщения от fuckingquest
 
Регистрация: 28.10.2016
Сообщений: 70

Вот такая еще есть альтернатива
Object.defineProperty(window, "a", {value: 1, configurable: false})
alert(a); a = 2; alert(a)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переход по локальной ссылке срабатывает только один раз gnplsk Events/DOM/Window 1 09.07.2016 18:50
слайдер срабатывает один раз serrrgggeee Javascript под браузер 8 13.10.2014 16:03
Можно ли объявить переменную прямо в массиве или объекте mkone112 Общие вопросы Javascript 32 20.09.2014 01:23
Окно открывается только один раз altermann ExtJS 8 22.04.2010 11:55
Чтоб ссылка появлялась один раз для каждого пользователя (по IP или Cookies) Sequoia Общие вопросы Javascript 2 28.01.2010 19:16