스터디
자바스크립트 질문 - 240430
민아!
2024. 4. 29. 21:03
1. 3번째 라인의 Lee를 왜 저렇게 쓰는지 모르겠습니다.
const person = (name => ({
sayHi() {return `hi my name is $name`;}
}))('Lee');
console.log(person.sayHi()) // hi my name is Lee.
2. 함수에 나오는 this가 뭘 가리키는지 이해가 가지 않습니다.
class Base {
constructor(name) {
this.name = name;
}
sayHi() {
return `hi ${this.name}`;
}
}
class Derived extends Base {
// 화살표 함수의 super는 상위 스코프인 constructor의 super을 가리킨다.
sayHi = () => `#{super.sayHi()}` how are you doing?;
}
const derived = new Derived('Lee');
console.log(derived.sayHi()); // hi Lee how are you doing?
3. call과 arguments를 모르겠습니다.
function sum() {
// 유사 배열 객체를 배열로 변환
var arr = Array.prototype.slice.call(arguments);
console.log(arr); // [1, 2, 3]
return arr.reduce(function (pre, cur) {
return pre + cur;
}, 0);
}
console.log(sum(1,2,3)) // 6
4. this가 왜 나오는지 모르겠습니다.
class Numbers {
numberArray = [];
multiply(arr) {
arr.forEach(function (item) {
this.numberArray.push(item * item);
}, this);
}
}
const numbers = new Numbers();
numbers.multifly([1, 2, 3]);
console.log(numbers.numberArray); // [1, 4, 9]
5. _ 의 의미를 모르겠습니다.
new Promise(resolve => resolve('fulfilled'))
.then(v => console.log(v), e => console.log(e); // fulfilled
new Promise((_, rejected) => reject(new Error('rejected')))
.then(v => console.log(v), e => console.log(e); // error: rejected