Skip to content

Commit 8b48fc7

Browse files
committed
renovations
1 parent bc34b2f commit 8b48fc7

File tree

5 files changed

+18
-10
lines changed

5 files changed

+18
-10
lines changed

1-js/4-data-structures/4-object/article.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,9 @@ alert( person[key] ); // выведет person['age']
203203

204204
Объект можно заполнить значениями при создании, указав их в фигурных скобках: `{ ключ1: значение1, ключ2: значение2, ... }`.
205205

206-
Такой синтаксис называется *литеральным* (оригинал - *literal*), cледующие два фрагмента кода создают одинаковый объект:
206+
Такой синтаксис называется *литеральным* (англ. literal).
207+
208+
Следующие два фрагмента кода создают одинаковый объект:
207209

208210
```js
209211
var menuSetup = {

1-js/6-objects-more/4-descriptors-getters-setters/article.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
# Дескрипторы, геттеры и сеттеры свойств
22

3-
В этой главе мы рассмотрим возможности, которые позволяют очень гибко и мощно управлять всеми свойствами объекта, включая их аспекты -- изменяемость, видимость в цикле `for..in` и даже "невидимые" геттеры-сеттеры.
3+
В этой главе мы рассмотрим возможности, которые позволяют очень гибко и мощно управлять всеми свойствами объекта, включая их аспекты -- изменяемость, видимость в цикле `for..in` и даже незаметно делать их функциями.
44

5-
Они поддерживаются всеми современными браузерами, но не IE8-. Точнее говоря, они поддерживаются даже в IE8, но не для всех объектов, а только для DOM-объектов (используются при работе со страницей, это сейчас вне нашего рассмотрения).
5+
Они поддерживаются всеми современными браузерами, но не IE8-. Впрочем, даже в IE8 их поддерживает, но только для DOM-объектов (используются при работе со страницей, это сейчас вне нашего рассмотрения).
66

77
[cut]
88
## Дескрипторы в примерах
99

1010
Основной метод для управления свойствами -- [Object.defineProperty](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty).
1111

12-
Он позволяет определить свойство путём задания "дескриптора" -- описания, включающего в себя ряд важных внутренних параметров.
12+
Он позволяет как просто объявить свойство объекта, так и настроить тонко настроить его особые аспекты, которые никак иначе не изменить.
1313

1414
Синтаксис:
1515

@@ -349,8 +349,8 @@ alert( Object.getOwnPropertyNames(obj) ); // a, internal, b
349349
```
350350

351351
</dd>
352-
<dt>[Object.getOwnPropertyDescriptor(prop)](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor)</dt>
353-
<dd>Возвращает дескриптор для свойства с `prop`.
352+
<dt>[Object.getOwnPropertyDescriptor(obj, prop)](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor)</dt>
353+
<dd>Возвращает дескриптор для свойства `obj[prop]`.
354354

355355
Полученный дескриптор можно изменить и использовать `defineProperty` для сохранения изменений, например:
356356

1-js/6-objects-more/7-bind/6-ask-currying/task.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
Эта задача -- усложнённый вариант задачи [](/task/question-use-bind). В ней объект `user` изменён.
66

7-
Теперь вместо двух функций `user.loginOk()` и `user.loginFail()` теперь один метод: `user.loginDone(true/false)`, который нужно вызвать с `true` при верном ответе и `fail` -- при неверном.
7+
Теперь заменим две функции `user.loginOk()` и `user.loginFail()` на единый метод: `user.loginDone(true/false)`, который нужно вызвать с `true` при верном ответе и `fail` -- при неверном.
88

99
Код ниже делает это, соответствующий фрагмент выделен.
1010

2-ui/1-document/3-dom-console/article.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ $0.style.backgroundColor = 'red';
5555

5656
Мы выделили элемент, применили к нему JavaScript в консоли, тут же увидели изменения в браузере.
5757

58-
Есть и обратная дорожка: любой элемент из JS-переменной можно посмотреть во вкладке Elements, для этого:
58+
Есть и обратная дорожка. Любой элемент из JS-переменной можно посмотреть во вкладке Elements, для этого:
5959

6060
<ol>
6161
<li>Выведите эту переменную в консоли, например при помощи `console.log`.</li>
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1-
`Origin` нужен, потому что `Referer` передаётся не всегда. В частности, при запросе со страницы на HTTPS -- нет `Referer`.
1+
`Origin` нужен, потому что `Referer` передаётся не всегда. В частности, при запросе с HTTPS на HTTP -- нет `Referer`.
22

3-
Что же касается "неправильного" `Referer` -- это из области фантастики. Когда-то, много лет назад, в браузерах были ошибки, которые позволяли подменить `Referer` из JavaScript, но они давно исправлены.
3+
Политика [Content Security Policy](http://en.wikipedia.org/wiki/Content_Security_Policy) может запрещать пересылку `Referer`.
4+
5+
По стандарту `Referer` является необязательным HTTP-заголовком, в некоторых браузерах есть настройки, которые запрещают его слать.
6+
7+
Именно поэтому, ввиду того, что на `Referer` полагаться нельзя, и придумали заголовок `Origin`, который гарантированно присылается при кросс-доменных запросах.
8+
9+
Что же касается "неправильного" `Referer` -- это из области фантастики. Когда-то, много лет назад, в браузерах были ошибки, которые позволяли подменить `Referer` из JavaScript, но они давно исправлены. Никакая "злая страница" не может его подменить.

0 commit comments

Comments
 (0)