JavaScript의 새롭고 스마트한 코드를 사용한 계산 합계 ➕ 프로그램 🔥.

단일 인수를 사용하고 전역 변수를 사용하지 않고 모든 이전 인수의 합계를 반환하는 JavaScript에서 함수를 만듭니다.



여기에서 우리는 항상 동일한 작업을 수행하기 위해 짧고 스마트한 🏆 코드를 찾으려고 노력합니다.



먼저 간단한 접근 방식으로 이 작업을 수행한 다음 계속 진행합니다.



When we create diagram in mind first we think to take an global variable that store data for you, But that's always a bad idea for smart 😎 developer.




function calc() {
    // creating private valriable
    let value = 0;
    // private function
    function changeBy(val) {
        value += val;
    }
    // returning an object
    return {
        // add method 
        add: function (i) {
            changeBy(i);
        },
        // return value
        value: function () {
            return value;
        }
    }
}

// making mycalc function with calc
let mycalc = calc()

// adding number.
mycalc.add(12)
mycalc.add(15)

// print to console
console.log(mycalc.value())

// output is 27



여기에서는 코드가 긴 것 같고 es-6 스마트 기능도 없기 때문에 시작하겠습니다 🎉.






let calc = () => {
    // creating private valriable
    let value = 0;
    // private function
    let changeBy = val => value += val;
    // returning an object
    return {
        // add method 
        add: (i) => changeBy(i),
        // return value
        value: () => value
    }
}

// making mycalc function with calc
let mycalc = calc()

// adding number.
mycalc.add(12)
mycalc.add(15)

// print to console
console.log(mycalc.value())

// still output is 27 but with smart code.



이제 코드를 보면 꽤 짧습니다.




let calc = () => {
    let value = 0;
    let changeVal = val => (value += val);
    return {
        add: (i) => changeVal(i)
    }
}


하지만 우리가 private 함수를 사용하는 이유가 눈에 띕니다 😋 제거합시다.




let calc = () => {
    let value = 0;
    return {
        add: i => value += i
    }
}


더 간단하게 만들기 위해 많은 줄의 코드를 제거했지만 여전히 해당 코드에 문제가 있습니다. 매번 인수를 받아서 모든 이전 인수와 현재 인수의 합계를 반환하는 함수가 필요합니다. 그러나 함수를 사용할 때 클래스 메서드와 속성을 사용하는 것처럼 느껴지므로 이 문제를 해결해 보겠습니다.



  • To solving this issue we need to wrap calc function in () parenthesis, and change the name of function calc to sum and call that's function in sum function 😝.
  • And replace object with function in return statement.


let sum = (
    i => {
        let v = i;
        return i => v += i
    }
)(0);


여기서 우리는 객체 반환 값만 반환하지 않는 것과 같이 많은 것을 변경합니다. Zero는 sum 함수의 시작 값입니다.



이제 우리의 임무가 완료되었습니다




let sum = (i => { let v = i; return i => v += i })(0);

console.log(sum(14)) /* output --> 14 */
console.log(sum(13)) /* output --> 27 */
console.log(sum(10)) /* output --> 37 */


최종 결과

let sum = (a => b => a += b )(0)


😁😁😁🎉

좋은 웹페이지 즐겨찾기