Що таке функція каррінг (currying function) в javascript?
Функція каррінг (currying function) в JavaScript - це процес перетворення функції, яка приймає декілька аргументів, у послідовність функцій, кожна з яких приймає лише один аргумент. Ось приклад використання каррінгу в JavaScript:
// Функція, яка додає два числа
function add(a, b) {
return a + b;
}
// Каррінг функції `add`
function curryAdd(a) {
return function(b) {
return a + b;
};
}
var addTwo = curryAdd(2);
console.log(addTwo(3)); // 5
У цьому прикладі, ми визначаємо функцію add
, яка додає два числа. Потім ми визначаємо функцію curryAdd
, яка приймає перший аргумент a
та повертає функцію, яка приймає другий аргумент b
та додає його до a
. Таким чином, ми можемо викликати функцію addTwo
з аргументом 3
, що повертає 5
. Каррінг в JavaScript дозволяє вам створювати більш гнучкі та повторно використовувані функції за допомогою часткового визначення аргументів.
Часткове застосування JS
Часткове застосування (partial application) в JavaScript - це процес створення нової функції, яка є частковим застосуванням іншої функції з певними аргументами. Ось приклад використання часткового застосування в JavaScript:
// Функція, яка додає два числа
function add(a, b) {
return a + b;
}
// Часткове застосування функції `add` з аргументом 2
var addTwo = add.bind(null, 2);
console.log(addTwo(3)); // 5
У цьому прикладі, ми визначаємо функцію add
, яка додає два числа. Потім ми створюємо нову функцію addTwo
, яка є частковим застосуванням функції add
з аргументом 2
. Після цього ми викликаємо функцію addTwo
з аргументом 3
, що повертає 5
. Часткове застосування в JavaScript дозволяє вам створювати більш гнучкі та повторно використовувані функції за допомогою часткового визначення аргументів.
Currying в JS
Функція каррінг (currying function) в JavaScript - це процес перетворення функції, яка приймає декілька аргументів, у послідовність функцій, кожна з яких приймає лише один аргумент. Ось приклад використання каррінгу в JavaScript:
// Функція, яка додає два числа
function add(a, b) {
return a + b;
}
// Каррінг функції `add`
function curryAdd(a) {
return function(b) {
return a + b;
};
}
var addTwo = curryAdd(2);
console.log(addTwo(3)); // 5
У цьому прикладі, ми визначаємо функцію add
, яка додає два числа. Потім ми визначаємо функцію curryAdd
, яка приймає перший аргумент a
та повертає функцію, яка приймає другий аргумент b
та додає його до a
. Таким чином, ми можемо викликати функцію addTwo
з аргументом 3
, що повертає 5
. Каррінг в JavaScript дозволяє вам створювати більш гнучкі та повторно використовувані функції за допомогою часткового визначення аргументів.
Функция-конструктор JS
Функція-конструктор (constructor function) в JavaScript - це функція, яка використовується для створення нових об'єктів. Ось приклад використання функції-конструктора в JavaScript:
// Функція-конструктор
function Person(name, age) {
this.name = name;
this.age = age;
}
// Створення нового об'єкта за допомогою функції-конструктора
var person = new Person('John', 30);
console.log(person.name); // 'John'
console.log(person.age); // 30
У цьому прикладі, ми визначаємо функцію-конструктор Person
, яка приймає аргументи name
та age
та встановлює їх як властивості об'єкта this
. Потім ми створюємо новий об'єкт person
за допомогою функції-конструктора Person
та передаємо йому значення name
та age
. Таким чином, функції-конструктори в JavaScript дозволяють вам створювати нові об'єкти з однаковою структурою та поведінкою.
Що таке типи посилань js
Типи посилань (reference types) в JavaScript - це об'єкти, які зберігаються та передаються за посиланням. Ось приклад використання типів посилань в JavaScript:
// Створення об'єкта
var person = {
name: 'John',
age: 30
};
// Передача об'єкта за посиланням
function updatePerson(person) {
person.age++;
}
updatePerson(person);
console.log(person.age); // 31
У цьому прикладі, ми створюємо об'єкт person
з властивостями name
та age
. Потім ми визначаємо функцію updatePerson
, яка приймає об'єкт person
та збільшує його властивість age
на одиницю. Після цього ми викликаємо функцію updatePerson
з об'єктом person
, що змінює його властивість age
. Таким чином, типи посилань в JavaScript дозволяють вам працювати з об'єктами та передавати їх за посиланням.
Мемоізація JS
Мемоізація (memoization) в JavaScript - це техніка оптимізації, яка полягає в збереженні результатів викликів функції для певних вхідних даних та повторному використанні цих результатів при наступних викликах з тими ж вхідними даними. Ось приклад використання мемоізації в JavaScript:
// Функція, яка обчислює факторіал
function factorial(n) {
if (n === 0) {
return 1;
}
return n * factorial(n - 1);
}
// Мемоізація функції `factorial`
var memoizedFactorial = (function() {
var cache = {};
return function(n) {
if (n in cache) {
return cache[n];
}
var result = factorial(n);
cache[n] = result;
return result;
};
})();
console.log(memoizedFactorial(5)); // 120
У цьому прикладі, ми визначаємо функцію factorial
, яка обчислює факторіал числа n
. Потім ми визначаємо мемоізовану функцію memoizedFactorial
, яка зберігає результати обчислення факторіалу в кеші та повторно використовує їх при наступних викликах. Таким чином, мемоізація в JavaScript дозволяє вам покращити продуктивність програми шлях використання кешування результатів обчислень.