let user = {
name: "John",
age: 30
};
user.sayHi = function() {
alert("안녕하세요!");
};
user.sayHi(); // 안녕하세요
함수를 축약 가능하다
user.sayHi() {
alert("안녕하세요!");
};
let user = {
name: "John",
age: 30,
sayHi() {
// 'this'는 '현재 객체'를 나타냅니다.
alert(this.name);
}
};
user.sayHi(); // John
일반 함수에서 this를 호출하면 user 객체에 접근이 가능하지만
sayHi:() => {
alert(this.name);
}
화살표 함수로 this호출시엔 전역객체에 접근하게 된다.
'use strict'
function strict(){
console.log(this)
}
엄격모드를 사용하게되면 window(전역객체)에 접근하지 않고 undefined를 뱉는다
let user = {
firstName: "joo",
sayHi() {
let arrow = () => alert(this.firstName);
arrow();
}
};
user.sayHi(); // joo
메서드 안에서 함수를 선언해야 할 경우에는 화살표 함수가 좋다!
let user = {
firstName: "joo",
sayHi() {
let arrow(){ alert(this.firstName); // 일반함수 사용시 this가 window를 실행시키기 때문에
}
arrow.call(this); //call을 사용하여 this(user())사용이 가능하다.
}
};
'string'.toUppercase()
원시값에는 메서드 사용이 불가능한게 맞지만
toUppercase()는 String이 기본적으로 가지고 있는 메서드 이기 때문에 사용이 가능하다.