Книга: Выразительный JavaScript
Методы
Методы
Методы – свойства, содержащие функции. Простой метод:
var rabbit = {};
rabbit.speak = function(line) {
console.log("Кролик говорит '" + line + "'");
};
rabbit.speak("Я живой.");
// ? Кролик говорит 'Я живой.'
Обычно метод должен что-то сделать с объектом, через который он был вызван. Когда функцию вызывают в виде метода – как свойство объекта, например object.method()
– специальная переменная в её теле будет указывать на вызвавший её объект.
function speak(line) {
console.log("А " + this.type + " кролик говорит '" + line + "'");
}
var whiteRabbit = {type: "белый", speak: speak};
var fatRabbit = {type: "толстый", speak: speak};
whiteRabbit.speak("Ушки мои и усики, я же наверняка опаздываю!");
// ? А белый кролик говорит 'Ушки мои и усики, я же наверняка опаздываю!'
fatRabbit.speak("Мне бы сейчас морковочки.");
// ? А толстый кролик говорит 'Мне бы сейчас морковочки.'
Код использует ключевое слово this
для вывода типа говорящего кролика.
Вспомните, что методы apply
и bind
принимают первый аргумент, который можно использовать для эмуляции вызова методов. Этот первый аргумент как раз даёт значение переменной this
.
Есть метод, похожий на apply
, под названием call
. Он тоже вызывает функцию, методом которой является, только принимает аргументы как обычно, а не в виде массива. Как apply
и bind
, в call
можно передать значение this
.
speak.apply(fatRabbit, ["Отрыжка!"]);
// ? А толстый кролик говорит 'Отрыжка!'
speak.call({type: "старый"}, "О, господи.");
// ? А старый кролик говорит 'О, господи.'
- Взаимодействие ограничений
- 7 причин завести контент-план
- Блокировки
- Подготовка к геймификации
- Summary
- Заключение
- Проблема, стоящая перед владельцами бренда
- Немецкий Советск, или Очарование уходящего
- Листинг 11.2. Динамическое заполнение данными элемента управления TreeView
- Глава 3. Увеличение суммы среднего чека
- Меню-холдеры
- Классификация подсознательных процессов