PROG_WAY_BLOG Telegram 114
​​Методы управления контекстом вызова

Ранее мы разбирали что такое this и там я пообещал рассказать о методах call, apply и bind. Этот пост как раз об этом.

Итак, все эти 3 метода созданы для управления контекстом вызова функции. Давайте рассмотрим пример:

const person = {
name: "Deins",
greet(greeting = 'Hi') {
console.log(`${greeting}, ${this.name}`)
}
}

const channel = {
name: "progway"
}

// Hi, Denis
person.greet()

// Hello, progway
person.greet.call(channel, 'Hello')

// Привет, Денис
person.greet.apply({name: 'Денис'}, ['Привет'] )

const greetMax =
person.greet.bind({name: "Макс"}, 'Привет')

// Привет, Макс
greetMax()


Без кода всё равно не разобраться.

У объекта person есть метод greet, который за контекст вызова берёт как раз объект person. Но если мы хотим применить к этому методу другой контекст, например созданный заранее объект channel или новый произвольный объект, то необходимо использовать вышеописанные 3 метода.

call, apply — применяют новый контекст к функции, принимая новый контекст первым параметром, а далее вызывают функцию с указанными аргументами.

call принимает аргументы функции через запятую, а apply принимает их списком. Это основное отличие между этими двумя методами.

bind — так же применяет контекст и через запятую принимает параметры для вызова, НО

Самым важным отличием является то, что методы apply и call сразу же вызывают функцию и возвращают её результат, а метод bind создает новую функцию относительно аргументов и контекста, но не вызывает её. Такую функцию мы можем сохранить в переменную и вызвать позже.

Такие манипуляции встречаются часто, но для чего именно они нужны мы тут разбирать не будем, оставим это на потом.

И на этом пока всё. Спасибо за прочтение, это важно для меня.

#javascript #theory
🥰32



tgoop.com/prog_way_blog/114
Create:
Last Update:

​​Методы управления контекстом вызова

Ранее мы разбирали что такое this и там я пообещал рассказать о методах call, apply и bind. Этот пост как раз об этом.

Итак, все эти 3 метода созданы для управления контекстом вызова функции. Давайте рассмотрим пример:

const person = {
name: "Deins",
greet(greeting = 'Hi') {
console.log(`${greeting}, ${this.name}`)
}
}

const channel = {
name: "progway"
}

// Hi, Denis
person.greet()

// Hello, progway
person.greet.call(channel, 'Hello')

// Привет, Денис
person.greet.apply({name: 'Денис'}, ['Привет'] )

const greetMax =
person.greet.bind({name: "Макс"}, 'Привет')

// Привет, Макс
greetMax()


Без кода всё равно не разобраться.

У объекта person есть метод greet, который за контекст вызова берёт как раз объект person. Но если мы хотим применить к этому методу другой контекст, например созданный заранее объект channel или новый произвольный объект, то необходимо использовать вышеописанные 3 метода.

call, apply — применяют новый контекст к функции, принимая новый контекст первым параметром, а далее вызывают функцию с указанными аргументами.

call принимает аргументы функции через запятую, а apply принимает их списком. Это основное отличие между этими двумя методами.

bind — так же применяет контекст и через запятую принимает параметры для вызова, НО

Самым важным отличием является то, что методы apply и call сразу же вызывают функцию и возвращают её результат, а метод bind создает новую функцию относительно аргументов и контекста, но не вызывает её. Такую функцию мы можем сохранить в переменную и вызвать позже.

Такие манипуляции встречаются часто, но для чего именно они нужны мы тут разбирать не будем, оставим это на потом.

И на этом пока всё. Спасибо за прочтение, это важно для меня.

#javascript #theory

BY progway — программирование, IT




Share with your friend now:
tgoop.com/prog_way_blog/114

View MORE
Open in Telegram


Telegram News

Date: |

In the next window, choose the type of your channel. If you want your channel to be public, you need to develop a link for it. In the screenshot below, it’s ”/catmarketing.” If your selected link is unavailable, you’ll need to suggest another option. In handing down the sentence yesterday, deputy judge Peter Hui Shiu-keung of the district court said that even if Ng did not post the messages, he cannot shirk responsibility as the owner and administrator of such a big group for allowing these messages that incite illegal behaviors to exist. While some crypto traders move toward screaming as a coping mechanism, many mental health experts have argued that “scream therapy” is pseudoscience. Scientific research or no, it obviously feels good. As five out of seven counts were serious, Hui sentenced Ng to six years and six months in jail. A Telegram channel is used for various purposes, from sharing helpful content to implementing a business strategy. In addition, you can use your channel to build and improve your company image, boost your sales, make profits, enhance customer loyalty, and more.
from us


Telegram progway — программирование, IT
FROM American