Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 26.02.2018, 21:23
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,127

Похоже тут нужен КЕП.

1. Свойство глобального объекта Window это ссылка на глобальный объект.
2. Глобальный объект это глобальный объект.
2.1 В JavaScript есть наследование. Любой объектный тип данных наследует свойства у Object.
2.2 Так как глобальный объект это объект то у него могут быть свойства. (null, undefined).

Глобальный объект это обычно простой экземпляр Object который расширяется специальными свойствами описанными в спецификации. Нужен он для того чтобы было возможно организовать контекст исполнения (области видимости для функций) т.е. если грубо на пальцах это место(объект) где хранятся переменные т.е реализует механизм сохранения и обращения к данным. Данные не могут висеть в воздухе нужен механизм(правила, соглашение) для того что обратится к ним. Глобальный объект как раз и служит набором правил по сохранению и использованию данных.

Rashid6 похоже думает что "Object" ,"window" и "Глобальный объект" это разные типы данных (классы как в C#)

На самом деле window это идентификатор хранящий ссылку на "Глобальный объект" который является экземпляром "Object".
Ответить с цитированием
  #12 (permalink)  
Старый 26.02.2018, 21:24
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от Rashid6
Правильно я понимаю или Глобальный объект не связан с остальными объектами ?
В принципе правильно, актуальная спецификация http://www.ecma-international.org/ec...-global-object
Сообщение от Rashid6
тогда почему window ссылается в конечном итоге на Object ?
Это не важно, какой объект выше по иерархии __proto__, в спецификации вообще написано, что зависит от реализации, "The value of the [[Prototype]] internal slot of the global object is implementation-dependent."

Глобальный объект - это просто объект, структура данных, свойства которого являются глобальными идентификаторами, "... an associated global object whose properties provide some of the global environment's identifier bindings.", http://www.ecma-international.org/ec...#global-object

Ну а ссылка на глобальный объект может называться по разному, в браузерах это window, в node.js это global, в wsh вообще никак не называется, доступно через this. Про значение this в глобальном пространстве ничего не нашел, кроме этого "[[GlobalThisValue]] - The value returned by this in global scope. Hosts may provide any ECMAScript Object value." http://www.ecma-international.org/ec....html#table-18, прямо не написано что это ссылка на глобальный объект, остается только догадываться.
Ответить с цитированием
  #13 (permalink)  
Старый 26.02.2018, 22:30
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Rashid6,
Еще хотел сказать, что все эти window, document, ajax и тд, это не часть ECMAScript, это отдельные стандарты https://www.w3.org/standards/webdesign/script.
Ответить с цитированием
  #14 (permalink)  
Старый 28.02.2018, 11:04
Новичок на форуме
Отправить личное сообщение для Rashid6 Посмотреть профиль Найти все сообщения от Rashid6
 
Регистрация: 26.02.2018
Сообщений: 8

Сообщение от MallSerg Посмотреть сообщение
Похоже тут нужен КЕП.

1. Свойство глобального объекта Window это ссылка на глобальный объект.
2. Глобальный объект это глобальный объект.
2.1 В JavaScript есть наследование. Любой объектный тип данных наследует свойства у Object.
2.2 Так как глобальный объект это объект то у него могут быть свойства. (null, undefined).

Глобальный объект это обычно простой экземпляр Object который расширяется специальными свойствами описанными в спецификации. Нужен он для того чтобы было возможно организовать контекст исполнения (области видимости для функций) т.е. если грубо на пальцах это место(объект) где хранятся переменные т.е реализует механизм сохранения и обращения к данным. Данные не могут висеть в воздухе нужен механизм(правила, соглашение) для того что обратится к ним. Глобальный объект как раз и служит набором правил по сохранению и использованию данных.

Rashid6 похоже думает что "Object" ,"window" и "Глобальный объект" это разные типы данных (классы как в C#)

На самом деле window это идентификатор хранящий ссылку на "Глобальный объект" который является экземпляром "Object".

Во спасибо, да я думал как классы. Теперь понятно что window это Глобальный объект, и у него не должно быть конструктора, ссылается на объект - потому что сам window это объект. Все логично, всем спасибо!

Последний раз редактировалось Rashid6, 28.02.2018 в 11:11.
Ответить с цитированием
  #15 (permalink)  
Старый 28.02.2018, 11:10
Новичок на форуме
Отправить личное сообщение для Rashid6 Посмотреть профиль Найти все сообщения от Rashid6
 
Регистрация: 26.02.2018
Сообщений: 8

Сообщение от Rise Посмотреть сообщение
Rashid6,
Еще хотел сказать, что все эти window, document, ajax и тд, это не часть ECMAScript, это отдельные стандарты https://www.w3.org/standards/webdesign/script.
Ах да, это я понял. Только вот:

В глобальном объекте window столько объектов, это получается все нужно знать веб программисту, ну фронтендеру, или как там ? Это реально вообще ?
Ответить с цитированием
  #16 (permalink)  
Старый 28.02.2018, 20:59
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Rashid6,
По необходимости конечно, всё знать не реально, но основы хотя бы знать надо, дальше пойдут фреймворки, в общем учиться придется постоянно
Ответить с цитированием
  #17 (permalink)  
Старый 01.03.2018, 08:44
Новичок на форуме
Отправить личное сообщение для Rashid6 Посмотреть профиль Найти все сообщения от Rashid6
 
Регистрация: 26.02.2018
Сообщений: 8

Сообщение от Rise Посмотреть сообщение
Rashid6,
По необходимости конечно, всё знать не реально, но основы хотя бы знать надо, дальше пойдут фреймворки, в общем учиться придется постоянно
Ну основы я вроде как учу это EcmaScript и DOM в основном далее BOM.
А вот фремверки это что, не понимаю для чего они нужны, почему в самом Js писать нельзя а именно делать проекты на фремверках ?

Я вот понимаю чем занимаются верстальщики допустим, а чем занимаются те люди которые знают фреймверки, то есть настоящие фронтенд разработчики ?
Цитата:
Как говорил товарищ Ленин - "Учится, учится, и ещё раз учится."

Последний раз редактировалось Rashid6, 01.03.2018 в 08:47.
Ответить с цитированием
  #18 (permalink)  
Старый 01.03.2018, 11:43
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Rashid6,
Сообщение от Rashid6
Учится, учится, и ещё раз учится
В порядке учебы:
Учиться, учиться, и ещё раз учиться

Русский - это тоже язык, ничем не хуже языков программирования. Несоблюдение орфографии изменяет смысл.
Сообщение от Rashid6
А вот фремверки это что, не понимаю для чего они нужны, почему в самом Js писать нельзя
Можно, но зачем заново самому писать то, что уже написано - и хорошо написано? Фреймворки - это библиотеки очень полезных вещей
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите пожалуйста как написать правильно условие alexmixaylov jQuery 6 17.04.2014 16:56
Помогите пожалуйста правильно написать скрипт raffx Events/DOM/Window 17 16.10.2012 20:31
помогите пожалуйста у меня прблема Геворг Серверные языки и технологии 4 27.02.2011 14:00
помогите пожалуйста у меня прблема Геворг Серверные языки и технологии 7 24.02.2011 22:20
Что-то onmouseup у меня не хочет правильно работать. vahrusha Элементы интерфейса 5 10.04.2010 00:00