Skip to content

Latest commit

ย 

History

History
130 lines (102 loc) ยท 1.61 KB

ch22-๋ฌธ์ œ.md

File metadata and controls

130 lines (102 loc) ยท 1.61 KB

Chapter22 this

๐Ÿ“Œ๋ฌธ์ œ1

๋‹ค์Œ ์ฝ”๋“œ์˜ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์˜ˆ์ธกํ•˜์„ธ์š”.

function foo() {
  "use strict";

  console.log(this); // (1)
  function bar() {
    console.log(this); //(2)
  }
  bar();
}

foo();

๋‹ต์•ˆ ์ž‘์„ฑ

(1) 
(2) 

๐Ÿ“Œ๋ฌธ์ œ2

๋‹ค์Œ ์ฝ”๋“œ์˜ this๋Š” (1)person์— ๋ฐ”์ธ๋”ฉ๋˜๋Š”์ง€, (2)getName์— ๋ฐ”์ธ๋”ฉ๋˜๋Š”์ง€ ์•Œ์•„๋งž์ถฐ๋ณด์„ธ์š”~

์‹คํ–‰๊ฒฐ๊ณผ๋„ ์˜ˆ์ธกํ•ด๋ณด์„ธ์š”.

const person = {
  name: "Lee",
  getName() {
    return this.name;
  },
};

console.log(person.getName());

๋‹ต์•ˆ ์ž‘์„ฑ



๐Ÿ“Œ๋ฌธ์ œ3

๋‹ค์Œ ์ฝ”๋“œ์˜ ๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค

var value = 1;
const obj = {
    value : 100,
    foo(){
	console.log(this)  // (1)
	 function bar(){
	    'use strict'
	    console.log(this) (2)
	    console.log(value) // (3)
    }
    bar();
    }
}
obj.foo();

๋‹ต์•ˆ ์ž‘์„ฑ

(1)
(2)
(3)

๐Ÿ“Œ๋ฌธ์ œ 4

๋‹ค์Œ ์ฝ”๋“œ์˜ ๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค

function Circle(radius) {
	this.radius = radius;
	this.getDiameter = function () {
		return 2 * this.radius;
	};
}

const circle1 = new Circle(5);
const circle2 = Circle(10);

console.log(circle1); // (1)
console.log(circle2); // (2)

๋‹ต์•ˆ ์ž‘์„ฑ

(1)
(2)

๐Ÿ“Œ๋ฌธ์ œ5

๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ์•Œ๋งž์€ ์ถœ๋ ฅ๊ฐ’์„ ์ž‘์„ฑํ•ด๋ณด์‹œ์˜ค.

const obj = {
  firstName: 'Kim',
  printName () {
    console.log(`My name is ${this.firstName}.`); // ์ถœ๋ ฅ๊ฐ’
  }
};

const person = {
  firstName: 'Lee',
  foo(callback) {
    setTimeout(callback, 500);
  }
};

person.foo(obj.printName);

๋‹ต์•ˆ ์ž‘์„ฑ