Skip to content

Commit 70375c6

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents 8ac5774 + 203a9c6 commit 70375c6

File tree

17 files changed

+34
-31
lines changed

17 files changed

+34
-31
lines changed

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Thank you for being kind enough to help out!
99

1010
## Testing locally
1111

12-
1. Run `npm run build.js` to build
12+
1. Run `npm run build` to build
1313
1. Run a webserver from the root of the repo to view
1414

1515
## Getting changes merged

doc/en/function/closures.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@ Since it is not possible to reference or assign scopes in JavaScript, there is
3636
interact with it is via the two closures.
3737

3838
var foo = new Counter(4);
39-
foo.hack = function() {
39+
foo.hackFail = function() {
4040
count = 1337;
4141
};
4242

4343
The above code will **not** change the variable `count` in the scope of `Counter`,
44-
since `foo.hack` was not defined in **that** scope. It will instead create - or
44+
since `foo.hackFail` was not defined in **that** scope. It will instead create - or
4545
override - the *global* variable `count`.
4646

4747
### Closures Inside Loops

doc/en/function/scopes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ which, while different in syntax, behave the same way.
220220
!function(){}()
221221
+function(){}()
222222
(function(){}());
223+
void function(){}();
223224
// and so on...
224225

225226
### In Conclusion

doc/en/object/general.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ There are a couple of workarounds that can be used to make number literals act
2020
as objects too.
2121

2222
2..toString(); // the second point is correctly recognized
23-
2 .toString(); // note the space left to the dot
23+
2 .toString(); // note the space left of the dot
2424
(2).toString(); // 2 is evaluated first
2525

2626
### Objects as a Data Type

doc/it/types/casting.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ una *conversione di tipo* **ovunque** sia possibile.
2525
Per evitare i problemi appena visti, l'uso
2626
dell'[operatore di uguaglianza stretta](#types.equality) è **altamente**
2727
raccomandato. Sebbene questo eviti molti dei comuni problemi, ci sono ancora
28-
molti ulteriori problemi che possono essere generati dal sistema debolemente
28+
molti ulteriori problemi che possono essere generati dal sistema debolmente
2929
tipizzato di JavaScript.
3030

3131
### Costruttori di tipi interni

doc/it/types/instanceof.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ esattamente lo stesso oggetto.
3434

3535
### In conclusione
3636

37-
L'operatore `instanceof` dovrebbe essere usto **solo** quando si ha a che fare
37+
L'operatore `instanceof` dovrebbe essere usato **solo** quando si ha a che fare
3838
con oggetti personalizzati creati dal programmatore, che provengono dallo
3939
stesso contesto JavaScript. Proprio come per l'operatore [`typeof`](#types.typeof),
4040
ogni altro tipo di utilizzo dovrebbe essere **evitato**.

doc/ru/array/constructor.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
arr[1]; // не определён, undefined
1616
1 in arr; // false, индекс не был установлен
1717

18-
Поведение, которое позволяет изначально установить только размер массива, может пригодиться лишь в нескольких случаях, таких как повторение строк, за счёт чего избегается использование цикла `for loop`.
18+
Поведение, которое позволяет изначально установить только размер массива, может пригодиться лишь в нескольких случаях, таких как повторение строк, за счёт чего избегается использование цикла `for`.
1919

2020
new Array(count + 1).join(stringToRepeat);
2121

doc/ru/object/general.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373

7474
var test = {
7575
'case': 'Я — ключевое слово, поэтому меня надо записывать строкой',
76-
delete: 'Я тоже ключевое слово, так что я' // бросаю SyntaxError
76+
delete: 'Я тоже ключевое слово, так что я' // не является ошибкой, бросает SyntaxError только в версиях ECMAScript ниже 5ой версии
7777
};
7878

7979
Свойства объектов могут записываться как явно символами, так и в виде закавыченных строк. В связи с другим упущением в парсере JavaScript, этот код выбросит `SyntaxError` во всех версиях ранее ECMAScript 5.

doc/ru/object/hasownproperty.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
foo.hasOwnProperty('bar'); // false
1717
foo.hasOwnProperty('goo'); // true
1818

19-
Только используя hasOwnProperty можно гарантировать правильный результат при переборе свойств объекта. И **нет** иного способа для определения свойств, которые определены в *самом* объекте, а не где-то в цепочке его прототипов.
19+
Только используя `hasOwnProperty` можно гарантировать правильный результат при переборе свойств объекта. И **нет** иного способа для определения свойств, которые определены в *самом* объекте, а не где-то в цепочке его прототипов.
2020

2121
### `hasOwnProperty` как свойство
2222

@@ -38,4 +38,3 @@ JavaScript **не** резервирует свойство с именем `has
3838
### Заключение
3939

4040
**Единственным** способом проверить существование свойства у объекта является использование метода `hasOwnProperty`. При этом рекомендуется использовать этот метод в **каждом** [цикле `for in`](#object.forinloop) вашего проекта, чтобы избежать возможных ошибок с ошибочным заимствованием свойств из [прототипов](#object.prototype) родительских объектов. Также вы можете использовать конструкцию `{}.hasOwnProperty.call(...)` на случай, если кто-то вздумает расширить [прототипы](#object.prototype) встроенных объектов.
41-

doc/ru/object/prototype.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,19 @@
1010

1111
> **Замечание:** В результате выполнения конструкции `Bar.prototype = Foo.prototype` оба объекта будут делить друг с другом **один и тот же** прототип. Так что изменение прототипа одного из объектов повлечёт за собой изменение прототипа другого и наоборот — вряд ли это окажется тем, чего вы ожидали.
1212
13+
> **Замечание:** Для объявления наследования вместо `Bar.prototype = Object.create(Foo.prototype)` можно воспользоваться конструкций `Bar.prototype = new Foo()`, но у нее есть пару недостатков: 1) как правило требуется унаследовать только методы и свойства прототипа, а не создавать для этого новый объект; 2) создание объекта может требовать обязательные аргументы.
14+
15+
> **Примечание:** Метод `Object.create` отсутствует в IE8 и ниже, но его легко реализовать созданием своей такой функции или же можно подключить библиотеку для поддержки старых IE [*es5-shim*][5]
16+
1317
function Foo() {
1418
this.value = 42;
1519
}
16-
Foo.prototype = {
17-
method: function() {}
18-
};
20+
Foo.prototype.method = function() {}
1921

2022
function Bar() {}
2123

22-
// Установим значением прототипа Bar новый экземпляр Foo
23-
Bar.prototype = new Foo();
24+
// Зададим наследование от Foo
25+
Bar.prototype = Object.create(Foo.prototype);
2426
Bar.prototype.foo = 'Hello World';
2527

2628
// Убедимся, что Bar является действующим конструктором
@@ -81,4 +83,5 @@
8183
[2]: http://en.wikipedia.org/wiki/Monkey_patch
8284
[3]: http://prototypejs.org/
8385
[4]: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach
86+
[5]: https://github.com/es-shims/es5-shim
8487

0 commit comments

Comments
 (0)