더북(TheBook)
--- "Categories": - |- Vue.js - |- JavaScript "Tags": - |- Vue.js - |- JavaScript "date": |- 2020-01-03 "title": "Vue.js \uCF54\uB529 \uACF5\uC791\uC18C" "type": |- book ---
        function initCalc(elem) { -- calc 컴포넌트를 초기화합니다. 
 
          var calc =
            new Calc(
              elem.querySelector('input.calc-x-input'),
              elem.querySelector('input.calc-y-input'),
              elem.querySelector('span.calc-result')
            );
          var lastValues =
            new CalcValue(
              calc,
              parseFloat(calc.xInput.value),
              parseFloat(calc.yInput.value)
            );
 
          var handleCalcEvent = -- 이벤트 핸들러입니다. 
            function handleCalcEvent(e) {
              var newValues = lastValues,
                  elem = e.target;
 
              switch (elem) {
                case calc.xInput:
                  newValues =
                    lastValues.copyWith(
                      Calc.xName,
                      elem.value
                    );
                  break;
                case calc.yInput:
                  newValues =
                    lastValues.copyWith(
                      Calc.yName,
                      elem.value
                    );
                  break;
              }
 
              if (newValues != = lastValues) {
                lastValues = newValues;
                lastValues.render();
              }
            };
 

          elem.addEventListener('keyup', handleCalcEvent, false); -- keyup에 대한 이벤트 리스너를 설정합니다. 
          return lastValues;
        }
 

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.