Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ru: Format /web/javascript using Prettier (part 1) #14830

Merged
merged 1 commit into from
Aug 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 54 additions & 52 deletions files/ru/web/javascript/closures/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ tags:
- Замыкание
translation_of: Web/JavaScript/Closures
---

{{jsSidebar("Intermediate")}}

Замыкание — это комбинация функции и лексического окружения, в котором эта функция была определена. Другими словами, замыкание даёт вам доступ к [Scope](/ru/docs/Glossary/Scope) внешней функции из внутренней функции. В JavaScript замыкания создаются каждый раз при создании функции, во время её создания.
Expand All @@ -16,11 +17,12 @@ translation_of: Web/JavaScript/Closures

```js
function init() {
var name = "Mozilla"; // name - локальная переменная, созданная в init
function displayName() { // displayName() - внутренняя функция, замыкание
alert (name); // displayName() использует переменную, объявленную в родительской функции
}
displayName();
var name = "Mozilla"; // name - локальная переменная, созданная в init
function displayName() {
// displayName() - внутренняя функция, замыкание
alert(name); // displayName() использует переменную, объявленную в родительской функции
}
displayName();
}
init();
```
Expand All @@ -44,7 +46,7 @@ function makeFunc() {
}

return displayName;
};
}

var myFunc = makeFunc();
myFunc();
Expand All @@ -60,15 +62,15 @@ myFunc();

```js
function makeAdder(x) {
return function(y) {
return function (y) {
return x + y;
};
};
}

var add5 = makeAdder(5);
var add10 = makeAdder(10);

console.log(add5(2)); // 7
console.log(add5(2)); // 7
console.log(add10(2)); // 12
```

Expand Down Expand Up @@ -109,10 +111,10 @@ h2 {

```js
function makeSizer(size) {
return function() {
document.body.style.fontSize = size + 'px';
return function () {
document.body.style.fontSize = size + "px";
};
};
}

var size12 = makeSizer(12);
var size14 = makeSizer(14);
Expand All @@ -122,9 +124,9 @@ var size16 = makeSizer(16);
Теперь `size12`, `size14`, и `size16` - это функции, которые меняют размер текста в элементе body на значения 12, 14, и 16 пикселов, соответственно. После чего мы цепляем эти функции на кнопки примерно так:

```js
document.getElementById('size-12').onclick = size12;
document.getElementById('size-14').onclick = size14;
document.getElementById('size-16').onclick = size16;
document.getElementById("size-12").onclick = size12;
document.getElementById("size-14").onclick = size14;
document.getElementById("size-16").onclick = size16;
```

```html
Expand All @@ -144,23 +146,23 @@ JavaScript не имеет встроенной возможности сдел
Код ниже иллюстрирует, как можно использовать замыкания для определения публичных функций, которые имеют доступ к закрытым от пользователя (private) функциям и переменным. Такая манера программирования называется [модульное программирование](http://www.google.com/search?q=javascript+module+pattern):

```js
var Counter = (function() {
var Counter = (function () {
var privateCounter = 0;

function changeBy(val) {
privateCounter += val;
}

return {
increment: function() {
increment: function () {
changeBy(1);
},
decrement: function() {
decrement: function () {
changeBy(-1);
},
value: function() {
value: function () {
return privateCounter;
}
},
};
})();

Expand All @@ -185,24 +187,24 @@ alert(Counter.value()); /* Alerts 1 */
Заметьте, мы описываем анонимную функцию, создающую счётчик, и тут же запускаем её, присваивая результат исполнения переменной `Counter`. Но мы также можем не запускать эту функцию сразу, а сохранить её в отдельной переменной, чтобы использовать для дальнейшего создания нескольких счётчиков вот так:

```js
var makeCounter = function() {
var makeCounter = function () {
var privateCounter = 0;

function changeBy(val) {
privateCounter += val;
}

return {
increment: function() {
increment: function () {
changeBy(1);
},
decrement: function() {
decrement: function () {
changeBy(-1);
},
value: function() {
value: function () {
return privateCounter;
}
}
},
};
};

var Counter1 = makeCounter();
Expand Down Expand Up @@ -231,28 +233,28 @@ alert(Counter2.value()); /* Alerts 0 */

```html
<p id="help">Helpful notes will appear here</p>
<p>E-mail: <input type="text" id="email" name="email"></p>
<p>Name: <input type="text" id="name" name="name"></p>
<p>Age: <input type="text" id="age" name="age"></p>
<p>E-mail: <input type="text" id="email" name="email" /></p>
<p>Name: <input type="text" id="name" name="name" /></p>
<p>Age: <input type="text" id="age" name="age" /></p>
```

```js
function showHelp(help) {
document.getElementById('help').innerHTML = help;
document.getElementById("help").innerHTML = help;
}

function setupHelp() {
var helpText = [
{'id': 'email', 'help': 'Ваш адрес e-mail'},
{'id': 'name', 'help': 'Ваше полное имя'},
{'id': 'age', 'help': 'Ваш возраст (Вам должно быть больше 16)'}
];
{ id: "email", help: "Ваш адрес e-mail" },
{ id: "name", help: "Ваше полное имя" },
{ id: "age", help: "Ваш возраст (Вам должно быть больше 16)" },
];

for (var i = 0; i < helpText.length; i++) {
var item = helpText[i];
document.getElementById(item.id).onfocus = function() {
document.getElementById(item.id).onfocus = function () {
showHelp(item.help);
}
};
}
}

Expand All @@ -271,21 +273,21 @@ setupHelp();

```js
function showHelp(help) {
document.getElementById('help').innerHTML = help;
document.getElementById("help").innerHTML = help;
}

function makeHelpCallback(help) {
return function() {
return function () {
showHelp(help);
};
}

function setupHelp() {
var helpText = [
{'id': 'email', 'help': 'Ваш адрес e-mail'},
{'id': 'name', 'help': 'Ваше полное имя'},
{'id': 'age', 'help': 'Ваш возраст (Вам должно быть больше 16)'}
];
{ id: "email", help: "Ваш адрес e-mail" },
{ id: "name", help: "Ваше полное имя" },
{ id: "age", help: "Ваш возраст (Вам должно быть больше 16)" },
];

for (var i = 0; i < helpText.length; i++) {
var item = helpText[i];
Expand Down Expand Up @@ -313,11 +315,11 @@ function MyObject(name, message) {
this.name = name.toString();
this.message = message.toString();

this.getName = function() {
this.getName = function () {
return this.name;
};

this.getMessage = function() {
this.getMessage = function () {
return this.message;
};
}
Expand All @@ -332,12 +334,12 @@ function MyObject(name, message) {
}

MyObject.prototype = {
getName: function() {
getName: function () {
return this.name;
},
getMessage: function() {
getMessage: function () {
return this.message;
}
},
};
```

Expand All @@ -349,11 +351,11 @@ function MyObject(name, message) {
this.message = message.toString();
}

MyObject.prototype.getName = function() {
MyObject.prototype.getName = function () {
return this.name;
};

MyObject.prototype.getMessage = function() {
MyObject.prototype.getMessage = function () {
return this.message;
};
```
Expand All @@ -366,12 +368,12 @@ function MyObject(name, message) {
this.message = message.toString();
}

(function() {
this.getName = function() {
(function () {
this.getName = function () {
return this.name;
};

this.getMessage = function() {
this.getMessage = function () {
return this.message;
};
}).call(MyObject.prototype);
Expand Down
3 changes: 2 additions & 1 deletion files/ru/web/javascript/data_structures/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ tags:
- Учебник
translation_of: Web/JavaScript/Data_structures
---

{{jsSidebar("More")}}

Все языки программирования содержат встроенные типы данных, но они часто отличаются друг от друга в разных языках. Эта статья — попытка описать встроенные структуры (типы) данных, доступные в JavaScript, и их свойства. На их основе строятся другие структуры данных. Когда это возможно, то мы будем сравнивать типы данных в разных языках.
Expand All @@ -18,7 +19,7 @@ JavaScript является _слабо типизированным_ или _д
```js
var foo = 42; // сейчас foo типа Number
foo = "bar"; // а теперь foo типа String
foo = true; // foo становится типа Boolean
foo = true; // foo становится типа Boolean
```

## Типы данных
Expand Down
Loading