Super_Saimon

В чем разница при выполнении скрипта в jsfiddle & chromeDebug

Рекомендуемые сообщения

Добрый день! Имею вот такой самый простенький пример, но который загнал меня в тупик: https://jsfiddle.net/9n73ro76/  Разбирал работу указателя this. И сама суть вопроса в том, что в jsfiddle  результат undefinied, а в chrome искомое значение -  600 и undefinied. Я в упор не пойму в чем разница... Извиняюсь за столь примитивный вопрос, но пол дня потратил на понимание и силы уже иссякли на сей процесс))) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

возможно вам поможет https://jsfiddle.net/9n73ro76/1/ чтобы понять суть this, но вот почему через debгug работает именно так, тут я вам не подскажу. Возможно это из-за другого контекста выполнения скрипта. А вывод undefined в консоле - это то что возвращает ваша функция, если вы в нее добавите return, то будет выводить то, что вы напишете.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вы задаёте  в глобальном контексте var, соответственно записываете её непосредственно в window. То же самое что написать window.width = 600.  chrome отрабатывает ожидаемым образом, то есть возвращает 600, так как this тут ссылается на window.

В jsfiddle же используется immediately invoked function по этому переменная не записываться в глобальный контекст. Используйте этот паттерн, и получите ровно такой же результат в chrome
 

(finction(){
"use strict" 
//тут код
}());

 

 

Изменено пользователем andrey7287

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо за пояснение и потраченное время! Странный какой-то пример в книге))) Заставил поломать голову)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Super_Saimon
      Добрый день! есть два примераhttps://jsfiddle.net/98y72o9x/ и  https://jsfiddle.net/wgzq5e3o/ , которые, по сути, выполняют одно и тоже, но результат выполнения скрипта совершенно разный. Насколько я понял, при выполнении скрипта с динамическим объектом(getELementsByClassName) в коллекции второй и третий элементы списка меняются местами(по алфавиту выстраиваются, как мне показалось)... Но, как это играет на результате??? Та и подсчет кол-ва узлов с таким className чем отличается в обоих случаях???
    • Автор: cyklop77
      ищу работу angular2-разработчика. пример лучшего кода здесь: https://github.com/zlodiak/ng2_answers_web
      контакты:
      email: kalinin.sergey.81@gmail.com
      skype: cyklop771
    • Автор: evgenia18
      Добрый день! 
      На данный момент прохожу обучение по веб-программированию, но уже сейчас хотело бы поработать с реальными проектами. 
      Знаю HTML, CSS, принципы адаптивной верстки, основы JavaScript и тд.
      Пример моей работы находится по адресу https://evgenia1991.github.io/

Карта разработчиков

Карта участников

Отметь себя на карте для поиска или предложения работы