Skip to content

Перевод статьи Global object (1-js/06-advanced-functions/05-global-object/)#240

Merged
javascript-translate-bot merged 27 commits into
javascript-tutorial:masterfrom
vmasterov:master
Jun 20, 2019
Merged

Перевод статьи Global object (1-js/06-advanced-functions/05-global-object/)#240
javascript-translate-bot merged 27 commits into
javascript-tutorial:masterfrom
vmasterov:master

Conversation

@vmasterov

Copy link
Copy Markdown
Contributor

Перевод статьи Global object (1-js/06-advanced-functions/05-global-object/)

@javascript-translate-bot javascript-translate-bot added the review needed Review needed, please approve or request changes label Jun 11, 2019
@javascript-translate-bot javascript-translate-bot requested a review from a team June 11, 2019 14:49
@CLAassistant

CLAassistant commented Jun 11, 2019

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.


// the same as
window.alert("Hello");
// тоже самое что и

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

то же самое, что и

Comment thread 1-js/06-advanced-functions/05-global-object/article.md Outdated
Comment thread 1-js/06-advanced-functions/05-global-object/article.md Outdated
Comment thread 1-js/06-advanced-functions/05-global-object/article.md Outdated
Comment thread 1-js/06-advanced-functions/05-global-object/article.md Outdated
Comment thread 1-js/06-advanced-functions/05-global-object/article.md Outdated
Comment thread 1-js/06-advanced-functions/05-global-object/article.md Outdated
Comment thread 1-js/06-advanced-functions/05-global-object/article.md Outdated
Comment thread 1-js/06-advanced-functions/05-global-object/article.md Outdated
Comment thread 1-js/06-advanced-functions/05-global-object/article.md Outdated
@javascript-translate-bot javascript-translate-bot removed the review needed Review needed, please approve or request changes label Jun 11, 2019
@javascript-translate-bot

Copy link
Copy Markdown
Contributor

Please make the requested changes. After it, add a comment "/done".
Then I'll ask for a new review 👻

@javascript-translate-bot javascript-translate-bot added the changes requested Waiting for changes and /done from PR author label Jun 11, 2019
@vmasterov

Copy link
Copy Markdown
Contributor Author

/done

@javascript-translate-bot javascript-translate-bot added review needed Review needed, please approve or request changes and removed changes requested Waiting for changes and /done from PR author labels Jun 12, 2019
@javascript-translate-bot javascript-translate-bot requested a review from a team June 12, 2019 04:55
Comment thread 1-js/06-advanced-functions/05-global-object/article.md Outdated
Comment thread 1-js/06-advanced-functions/05-global-object/article.md Outdated
@javascript-translate-bot javascript-translate-bot added changes requested Waiting for changes and /done from PR author and removed review needed Review needed, please approve or request changes labels Jun 12, 2019
@javascript-translate-bot

Copy link
Copy Markdown
Contributor

Please make the requested changes. After it, add a comment "/done".
Then I'll ask for a new review 👻

@vmasterov

Copy link
Copy Markdown
Contributor Author

Хорошо.
Нужно перевести этот вариант?
https://github.com/javascript-tutorial/en.javascript.info/blob/master/1-js/06-advanced-functions/05-global-object/article.md

@iliakan

iliakan commented Jun 15, 2019

Copy link
Copy Markdown
Member

Да, спасибо. Сорри, но новый вариант будет точно лучше.

@vmasterov

Copy link
Copy Markdown
Contributor Author

Согласен — новый вариант хорош!

@vmasterov

Copy link
Copy Markdown
Contributor Author

/done

@javascript-translate-bot javascript-translate-bot added review needed Review needed, please approve or request changes and removed changes requested Waiting for changes and /done from PR author labels Jun 17, 2019
@iliakan

iliakan commented Jun 18, 2019

Copy link
Copy Markdown
Member

@vmasterov не затрудит сделать git pull upstream, а поверх него накатить ваш перевод? А то один сплошной конфликт.

Команды гита подсказать?

@vmasterov

Copy link
Copy Markdown
Contributor Author

@iliakan , посмотрите, пожалуйста. Вроде, всё правильно накатилось.

@iliakan iliakan left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Спасибо! Пожалуйста, внеси изменения, в основном улучшения изложения.

В браузере он называется "window", в Node.js "global", в другой среде исполнения может называться иначе.

For instance, we can call `alert` as a method of `window`:
Например, вызовем `alert` как метод `window`:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Например, мы можем вызвать alert как метод window:

```

We can reference other built-in functions like `Array` as `window.Array` and create our own properties on it.
Мы можем ссылаться на другие встроенные функции, к примеру, `Array` так: `window.Array`. Или создавать свои собственные свойства глобального объекта.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

так: -> как

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Или -> А также

## Браузер: объект "window"

For historical reasons, in-browser `window` object is a bit messed up.
По историческим причинам браузерный объект `window` выглядит слегка запутанно.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

По историческим причинам браузерный объект window играет одновременно две роли.

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

In a browser it is named `window`, for Node.js it is `global`, for other environments it may have another name.
В браузере он называется "window", в Node.js — "global", в другой среде исполнения может называться иначе.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Кавычки мб все же вернуть те, которые для кода?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Почему решил поменять?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вернул кавычки на место. Я изменил их случайно

В браузере он называется "window", в Node.js — "global", в другой среде исполнения может называться иначе.

Recently, `globalThis` was added to the language, as a standartized name for a global object, that should be supported across all environments. In some browsers, namely non-Chromium Edge, `globalThis` is not yet supported, but can be easily polyfilled.
Недавно `globalThis` был добавлен в язык как стандартизированное имя для глобального объекта, которое должно поддерживаться в любом окружении. В некоторых браузерах, с движком отличным от Chromium, `globalThis` ещё не поддерживается, но легко реализуется с помощью полифила.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Недавно globalThis был добавлен в язык как стандартизированное имя для глобального объекта, которое должно поддерживаться в любом окружении. В некоторых браузерах, например Edge не на Chromium, globalThis ещё не поддерживается, но легко реализуется с помощью полифила.

## Использование полифилов

We can test the global object for support of modern language features.
Мы можем проверить, поддерживает ли глобальный объект современные возможности языка.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Глобальный объект можно использовать, чтобы проверить поддержку современных возможностей языка.


That includes JavaScript built-ins, such as `Array` and environment-specific values, such as `window.innerHeight` -- the window height in the browser.
- The global object has a universal name `globalThis`.
Это включает в себя как встроенные конструкции, например, `Array`, так и характерные для окружения свойства, например, `window.innerHeight` -- высота окна браузера.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это включает в себя как встроенные объекты, например, `Array`, так и характерные для окружения свойства, например, `window.innerHeight` -- высота окна браузера.

...But more often is referred by "old-school" environment-specific names, such as `window` (browser) and `global` (Node.js). As `globalThis` is a recent proposal, it's not supported in non-Chromium Edge (but can be polyfilled).
- We should store values in the global object only if they're truly global for our project. And keep their number at minimum.
- In-browser, unless we're using [modules](info:modules), a global variable declared with `var` becomes a property of the global object.
...Но чаще на него ссылаются по-старому, используя имя, характерное для данного окружения, такое как `window` (браузер) и `global` (Node.js). Так как `globalThis` появился недавно, он не поддерживается браузерами, созданными не на движке Chromium (можно использовать полифил).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...Но чаще на него ссылаются по-старому, используя имя, характерное для данного окружения, такое как `window` (браузер) и `global` (Node.js). Так как `globalThis` появился недавно, он не поддерживается  в IE и Edge (не-Chromium версия), но можно использовать полифил.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Илья, здесь сказано, что Opera тоже не поддерживает globalThis. Может быть стоит об этом упомянуть, или это не так важно?

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#Browser_compatibility

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vmasterov мы не можем упоминать в учебнике о каждой ошибке в MDN. Opera поддерживает globalThis.

- In-browser, unless we're using [modules](info:modules), a global variable declared with `var` becomes a property of the global object.
...Но чаще на него ссылаются по-старому, используя имя, характерное для данного окружения, такое как `window` (браузер) и `global` (Node.js). Так как `globalThis` появился недавно, он не поддерживается браузерами, созданными не на движке Chromium (можно использовать полифил).
- Следует хранить значения в глобальном объекте, только если они действительно глобальны для нашего проекта. И стараться свести их количество к минимуму.
- В браузерах, если только мы не используем [modules](info:modules), глобальные переменные, объявленные с помощью `var`, становятся свойствами глобального объекта.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

- В браузерах, если только мы не используем [modules](info:modules), глобальные переменные, объявленные с помощью `var`, становятся свойствами глобального объекта.

To make the code easier to understand and more future-proof, we should operate directly on the properties of the global object: `window.x = ...` instead of `var x = ...`.
Для того, чтобы код был проще и в будущем его легче было поддерживать, следует обращаться к свойствам глобального объекта напрямую: `window.x = ...` вместо `var x = ...`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Для того, чтобы код был проще и в будущем его легче было поддерживать, следует обращаться к свойствам глобального объекта напрямую, как `window.x`.

@javascript-translate-bot javascript-translate-bot added changes requested Waiting for changes and /done from PR author and removed review needed Review needed, please approve or request changes labels Jun 19, 2019
@javascript-translate-bot

Copy link
Copy Markdown
Contributor

Please make the requested changes. After it, add a comment "/done".
Then I'll ask for a new review 👻

@vmasterov

Copy link
Copy Markdown
Contributor Author

/done

@javascript-translate-bot javascript-translate-bot added review needed Review needed, please approve or request changes and removed changes requested Waiting for changes and /done from PR author labels Jun 20, 2019
@javascript-translate-bot javascript-translate-bot requested a review from a team June 20, 2019 18:21
@iliakan

iliakan commented Jun 20, 2019

Copy link
Copy Markdown
Member

🚀

@javascript-translate-bot javascript-translate-bot merged commit 779ac59 into javascript-tutorial:master Jun 20, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs +1 One more review needed review needed Review needed, please approve or request changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants