final cleanup regexps
This commit is contained in:
parent
59388d093e
commit
833f7ba70e
132 changed files with 410 additions and 183 deletions
|
@ -268,72 +268,6 @@ function showWarning(width, height, title, contents) {
|
|||
}
|
||||
```
|
||||
|
||||
### "Именованные аргументы"
|
||||
|
||||
*Именованные аргументы* -- альтернативная техника работы с аргументами, которая вообще не использует `arguments`.
|
||||
|
||||
Некоторые языки программирования позволяют передать параметры как-то так: `f(width=100, height=200)`, то есть по именам, а что не передано, тех аргументов нет. Это очень удобно в тех случаях, когда аргументов много, сложно запомнить их порядок и большинство вообще не надо передавать, по умолчанию подойдёт.
|
||||
|
||||
Такая ситуация часто встречается в компонентах интерфейса. Например, у "меню" может быть масса настроек отображения, которые можно "подкрутить" но обычно нужно передать всего один-два главных параметра, а остальные возьмутся по умолчанию.
|
||||
|
||||
В JavaScript для этих целей используется передача аргументов в виде объекта, а в его свойствах мы передаём параметры.
|
||||
|
||||
Получается так:
|
||||
|
||||
```js
|
||||
function showWarning(options) {
|
||||
var width = options.width || 200; // по умолчанию
|
||||
var height = options.height || 100;
|
||||
|
||||
var title = options.title || "Предупреждение";
|
||||
|
||||
// ...
|
||||
}
|
||||
|
||||
showWarning({
|
||||
```
|
||||
|
||||
Вызвать такую функцию очень легко. Достаточно передать объект аргументов, указав в нем только нужные:
|
||||
|
||||
```js
|
||||
showWarning({
|
||||
contents: "Вы вызвали функцию" // и всё понятно!
|
||||
});
|
||||
```
|
||||
|
||||
Сравним это с передачей аргументов через список:
|
||||
|
||||
```js
|
||||
showWarning(null, null, "Предупреждение!");
|
||||
// мысль программиста "а что это за null, null в начале? ох, надо глядеть описание функции"
|
||||
```
|
||||
|
||||
Не правда ли, объект -- гораздо проще и понятнее?
|
||||
|
||||
Еще один бонус кроме красивой записи -- возможность повторного использования объекта аргументов:
|
||||
|
||||
```js
|
||||
var opts = {
|
||||
width: 400,
|
||||
height: 200,
|
||||
contents: "Текст"
|
||||
};
|
||||
|
||||
showWarning(opts);
|
||||
|
||||
opts.contents = "Другой текст";
|
||||
|
||||
*!*
|
||||
showWarning(opts); // вызвать с новым текстом, без копирования других аргументов
|
||||
*/!*
|
||||
```
|
||||
|
||||
Именованные аргументы применяются во многих JavaScript-фреймворках.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Устаревшее свойство arguments.callee [#arguments-callee]
|
||||
|
||||
[warn header="Используйте NFE вместо `arguments.callee`"]
|
||||
|
@ -407,6 +341,72 @@ function f3() {
|
|||
|
||||
В учебнике мы это свойство также не будем использовать.
|
||||
|
||||
|
||||
## "Именованные аргументы"
|
||||
|
||||
*Именованные аргументы* -- альтернативная техника работы с аргументами, которая вообще не использует `arguments`.
|
||||
|
||||
Некоторые языки программирования позволяют передать параметры как-то так: `f(width=100, height=200)`, то есть по именам, а что не передано, тех аргументов нет. Это очень удобно в тех случаях, когда аргументов много, сложно запомнить их порядок и большинство вообще не надо передавать, по умолчанию подойдёт.
|
||||
|
||||
Такая ситуация часто встречается в компонентах интерфейса. Например, у "меню" может быть масса настроек отображения, которые можно "подкрутить" но обычно нужно передать всего один-два главных параметра, а остальные возьмутся по умолчанию.
|
||||
|
||||
В JavaScript для этих целей используется передача аргументов в виде объекта, а в его свойствах мы передаём параметры.
|
||||
|
||||
Получается так:
|
||||
|
||||
```js
|
||||
function showWarning(options) {
|
||||
var width = options.width || 200; // по умолчанию
|
||||
var height = options.height || 100;
|
||||
|
||||
var title = options.title || "Предупреждение";
|
||||
|
||||
// ...
|
||||
}
|
||||
|
||||
showWarning({
|
||||
```
|
||||
|
||||
Вызвать такую функцию очень легко. Достаточно передать объект аргументов, указав в нем только нужные:
|
||||
|
||||
```js
|
||||
showWarning({
|
||||
contents: "Вы вызвали функцию" // и всё понятно!
|
||||
});
|
||||
```
|
||||
|
||||
Сравним это с передачей аргументов через список:
|
||||
|
||||
```js
|
||||
showWarning(null, null, "Предупреждение!");
|
||||
// мысль программиста "а что это за null, null в начале? ох, надо глядеть описание функции"
|
||||
```
|
||||
|
||||
Не правда ли, объект -- гораздо проще и понятнее?
|
||||
|
||||
Еще один бонус кроме красивой записи -- возможность повторного использования объекта аргументов:
|
||||
|
||||
```js
|
||||
var opts = {
|
||||
width: 400,
|
||||
height: 200,
|
||||
contents: "Текст"
|
||||
};
|
||||
|
||||
showWarning(opts);
|
||||
|
||||
opts.contents = "Другой текст";
|
||||
|
||||
*!*
|
||||
showWarning(opts); // вызвать с новым текстом, без копирования других аргументов
|
||||
*/!*
|
||||
```
|
||||
|
||||
Именованные аргументы применяются во многих JavaScript-фреймворках.
|
||||
|
||||
|
||||
|
||||
|
||||
## Итого
|
||||
|
||||
<ul>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue