자바스크립트

underdash 구현 어려웠던 두가지

하늘하늘 . 2020. 7. 15. 22:48
1
2
3
4
5
6
7
8
_.extend = function (obj) {
    for (let i = 0; i < arguments.length; i++) {
      for (let value in arguments[i]) {
        obj[value] = arguments[i][value];
      }
    }
    return obj;
  };
cs

arguments 가 여러가지 있을 수 있기 때문에 하나하나 다 집어넣기 위해서 for함수

arguments 값을 obj 값에다가 집어넣기 위해 = obj가 있을 때는 !== undefined를 이용(_.defaults) 

 

1
2
3
4
5
6
7
8
9
10
11
_.memoize = function (func) {
    let memo = {};
    return function () {
      if(memo[JSON.stringify(arguments)] === undefined){
        memo[JSON.stringify(arguments)] = func.apply(this, arguments);
        return memo[JSON.stringify(arguments)];
      } else {
        return memo[JSON.stringify(arguments)];
      }
    }
  };
cs

구현하는데 엄청 고민하고 찾아서 나온 결과... JSON.stringify를 이용할 줄 전혀 상상치 못해서...