Мне трудно понять и запомнить эти объекты Javascript, методы экземпляра и функции, потому что я не использую их ежедневно. Поэтому я надеюсь, что это поможет вам освежить вашу память.
Мы используем объекты для хранения нескольких значений в виде структуры данных.
Метод apply()
вызывает функцию с заданным значением this
и arguments
, представленным в виде массива (или объекта, подобного массиву).
const numbers = [5, 6, 2, 3, 7]; const max = Math.max.apply(null, numbers); console.log(max); // expected output: 7 const min = Math.min.apply(null, numbers); console.log(min); // expected output: 2
Метод bind()
создает новую функцию, которая при вызове имеет ключевое слово this
, установленное в предоставленное значение, с заданной последовательностью аргументов, предшествующих любой предоставленной при вызове новой функции.
const module = { x: 42, getX: function() { return this.x; } }; const unboundGetX = module.getX; console.log(unboundGetX()); // The function gets invoked at the global scope // expected output: undefined const boundGetX = unboundGetX.bind(module); console.log(boundGetX()); // expected output: 42
Метод call()
вызывает функцию с заданным значением this
и индивидуально предоставленными аргументами.
function Product(name, price) { this.name = name; this.price = price; } function Food(name, price) { Product.call(this, name, price); this.category = 'food'; } console.log(new Food('cheese', 5).name); // expected output: "cheese"
Функция обратного вызова — это функция, передаваемая в другую функцию в качестве аргумента, которая затем вызывается внутри внешней функции для завершения какой-либо подпрограммы или действия.
function greeting(name) {
alert('Hello ' + name);
}
function processUserInput(callback) {
var name = prompt('Please enter your name.');
callback(name);
}
processUserInput(greeting);
замыкание — это комбинация функции, связанной вместе (вложенной) со ссылками на ее окружающее состояние (лексическое окружение). Другими словами, замыкание дает вам доступ к области действия внешней функции из внутренней функции. В JavaScript замыкания создаются каждый раз, когда создается функция, во время создания функции.
function init() {
var name = 'Mozilla'; // name is a local variable created by init
function displayName() { // displayName() is the inner function, a closure
alert(name); // use variable declared in the parent function
}
displayName();
}
init();
Использованная литература: