2019/09/23 TIL(Today I Learn) - Currying ํ•จ์ˆ˜์—์„œ arguments, rest parameter ์‚ฌ์šฉํ•˜๊ธฐ

Rest Parameter

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/rest_parameters

function currying (func) {
    return function (...args) { // ๋ ˆ์ŠคํŠธ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ํ•จ์ˆ˜์— ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
        return func(...args); // "args"๋Š” ๋ฐฐ์—ด์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— "โ€ฆargs"๋กœ ์ž‘์„ฑํ•˜์—ฌ ๋ฐฐ์—ด์„ ํ•ด์ฒดํ•œ ๋’ค ์ธ์ˆ˜๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    }
}
let plus = currying (function(x, y, z){ return x + y + z });
plus(1,2,3) // 6

arguments

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/arguments

function currying (func) {
    return function () {
        return func(...arguments); // "arguments"๋Š” ์œ ์‚ฌ ๋ฐฐ์—ด์ด๊ธฐ ๋•Œ๋ฌธ์— "โ€ฆarguments"๋กœ ์ž‘์„ฑํ•˜์—ฌ ๋ฐฐ์—ด์„ ํ•ด์ฒดํ•œ ๋’ค ์ธ์ˆ˜๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    }
}
let plus = currying (function(x, y, z){ return x + y + z });
plus(1,2,3) // 6

Function.prototype.apply()

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Function/apply

function currying (func) {
    return function () {
        return func.apply(null, arguments); // apply ๋ฉ”์„œ๋“œ๋Š” ์ธ์ˆ˜๋ฅผ ๋ฐฐ์—ด๋กœ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— "arguments"๋กœ ์ž‘์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    }
}
let plus = currying (function(x, y, z){ return x + y + z });
plus(1,2,3) // 6

Function.prototype.call()

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Function/call

function currying (func) {
    return function () {
        return func.call(null, ...arguments); // call ๋ฉ”์„œ๋“œ๋Š” ์ธ์ˆ˜๋ฅผ ์‰ผํ‘œ(,)๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— โ€œ...arguments"๋กœ ์ž‘์„ฑํ•˜์—ฌ ๋ฐฐ์—ด์„ ํ•ด์ฒดํ•œ ๋’ค ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    }
}
let plus = currying (function(x, y, z){ return x + y + z });
plus(1,2,3) // 6
โ† ์ด์ „ ๊ฒŒ์‹œ๋ฌผ2019/09/25 TIL(Today I Learn) - ํฌ๋กœ์Šค ๋„๋ฉ”์ธ ์š”์ฒญ CORS
๋‹ค์Œ ๊ฒŒ์‹œ๋ฌผ โ†’Mocha Error: global leak detected: __VUE_DEVTOOLS_TOAST__ (Chrome Browser)
๋ชฉ๋ก