Как использовать закрытие для достижения этого ???Использование закрытий javascript для добавления двух чисел
addTogether (2) (3);
Мне также нужна та же функция, чтобы вернуть нормальное сложение как в addTogether (2,3) возвращает 5.
Как использовать закрытие для достижения этого ???Использование закрытий javascript для добавления двух чисел
addTogether (2) (3);
Мне также нужна та же функция, чтобы вернуть нормальное сложение как в addTogether (2,3) возвращает 5.
Вы можете написать что-то вроде:
function addTogether(a, b) {
if (b === undefined) {
return function (b) { return a + b; }
} else {
return a + b;
}
}
Однако, возвращая функцию или номер будет (в лучшем случае) для ваших пользователей. Я предлагаю всегда возвращать функцию, но позволяю ее вызывать без параметров (только немного лучше):
function addTogether(a, b) {
if (b === undefined) {
return function (c) { return a + c; }
} else {
return function () { return a + b; }
}
}
FWIW: 'b == null' обрабатывает' b === undefined || b === null' –
Нет, единственный раз '==' будет возвращать 'true', когда один из операндов' null 'или 'undefined' является, если другой операнд также является" null "или' undefined' .. . '0 == null; // false. Это почти единственный раз, когда я использую '==' в реальном коде. Я согласен с тем, что проверка «null», вероятно, не нужна. –
@squint huh, вы правы. Я предположил, что '==' будет относиться к 0 как к ложному, чтобы соответствовать нулю, но, по-видимому, нет. – ssube
Я должен спросить, по какой возможной причине вам это понадобилось? Меня заинтриговало то, что потенциальный вариант использования мог бы/был бы. – IMTheNachoMan