let name = "global";
function Func() {
this.name = "Func";
this.print = function f() { console.log(this.name); };
}
let a = new Func();
a.print(); // Func
function func() {
console.log(this.name);
}
const obj = { name: 'obj name' };
let.call(obj); // obj name
func.apply(obj); // obj name
(func.bind(obj))(); // obj name
const obj = {
name: 'obj name',
print: function p() { console.log(this.name); }
};
obj.print(); // obj name
console이라는 객체의log라는 메소드에 this.name을 넣었다.
따라서 여기서의 this는 obj라는 객체를 의미한다.