fork download
  1. // AS-IS
  2. var oldBinding = {
  3. name : 'old name',
  4. arr : ['oldArr1', 'oldArr2'],
  5. printArr: function() {
  6. var that = this; // oldBinding 을 가리키는 this 를 that 에 할당
  7. this.arr.forEach(function (v) {
  8. console.log(that.name, v);
  9. });
  10. }
  11. };
  12. oldBinding.printArr(); // old name oldArr1, old name oldArr2
  13.  
  14.  
  15. // TO-BE
  16. const newBinding = {
  17. name : 'new name',
  18. arr : ['newArr1', 'newArr2'],
  19. printArr() {
  20. this.arr.forEach(v => { // 화살표 함수를 사용했기 때문에 상위 스코프의 this 를 그대로 사용
  21. console.log(this.name, v);
  22. });
  23. }
  24. };
  25. newBinding.printArr(); // new name newArr1, new name newArr2
Success #stdin #stdout 0.02s 16704KB
stdin
Standard input is empty
stdout
old name oldArr1
old name oldArr2
new name newArr1
new name newArr2