Взгляд на два параметра, неявно переданные при вызова функции
Когда функция вызывается, существует два параметра, которые неявно передаются функции. Под косвенно я имею в виду, что вы не указываете их в списке параметров, но они все еще автоматически передаются в функцию и доступны изнутри функции.
Эти два параметра:
- этот параметр
- Аргументный параметр
это Параметр представляет объект, на котором вызывается наша функция, также называется Функциональный контекст .
аргументы Параметр представляет все аргументы, которые передаются в функцию, когда она вызывается.
То, как вызывается функция, имеет последствия для того, как устанавливаются параметры этого и аргументов.
Посмотрите на эту функцию, которая распечатывает аргумент, который он прошел явно, но также и параметр This and Arguments, которые неявно передаются:
function myHouse(address) {
console.log("Address:\n", address);
console.log("this parameter:\n", this);
console.log("arguments parameter:\n", arguments);
}
myHouse('123 Main st.');
Результатом вызова функции является:
Address:
123 Main st.
this parameter:
Object [global] {
global: [Circular],
clearInterval: [Function: clearInterval],
clearTimeout: [Function: clearTimeout],
setInterval: [Function: setInterval],
setTimeout: [Function: setTimeout] { [Symbol(util.promisify.custom)]: [Function] },
queueMicrotask: [Function: queueMicrotask],
clearImmediate: [Function: clearImmediate],
setImmediate: [Function: setImmediate] {
[Symbol(util.promisify.custom)]: [Function]
}
}
arguments parameter:
[Arguments] { '0': '123 Main st.' }
Как видите, это Параметр представляет глобальный объект, который является контекстом, в котором была вызвана функция.
аргументы Параметр – это объект с ключами и значениями, которые представляют явные аргументы, которые были переданы функции.
Завтра мы будем глубже заглянуть на параметр аргументов.
Оригинал: “https://dev.to/cesareferrari/the-this-and-arguments-parameters-in-javascript-4nh0”