๊ด€๋ฆฌ ๋ฉ”๋‰ด

C-log

JS์˜ ํ•ต์‹ฌ! ํ”„๋กœํ† ํƒ€์ž… prototype ๋ณธ๋ฌธ

๐Ÿ“’JS/โšกver.1

JS์˜ ํ•ต์‹ฌ! ํ”„๋กœํ† ํƒ€์ž… prototype

4:Bee 2023. 5. 16. 12:05
728x90

 YouTube Link
 
JavaScript - prototype (1/2) : prototype์ด๋ž€?
https://youtu.be/yXnbvyl04V4
JavaScript - prototype (2/2) : prototype chain
https://youtu.be/673mZ8rE9UY

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ์ฒด์ง€ํ–ฅ์„ ์ง€ํƒฑํ•˜๋Š” ํ•ต์‹ฌ์ ์ธ ๊ฐœ๋…์ด๋‹ค.

Prototype : ์›ํ˜•

// ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด ์ƒ์„ฑ
let person = {
  name: "John", // name ํ”„๋กœํผํ‹ฐ
  age: 30,      // age ํ”„๋กœํผํ‹ฐ
  isMale: true  // isMale ํ”„๋กœํผํ‹ฐ
};

// ์  ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ํ”„๋กœํผํ‹ฐ ์ ‘๊ทผ
console.log(person.name);   // ์ถœ๋ ฅ: "John"
console.log(person.age);    // ์ถœ๋ ฅ: 30
console.log(person.isMale); // ์ถœ๋ ฅ: true

// ๋Œ€๊ด„ํ˜ธ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ํ”„๋กœํผํ‹ฐ ์ ‘๊ทผ
console.log(person['name']);   // ์ถœ๋ ฅ: "John"
console.log(person['age']);    // ์ถœ๋ ฅ: 30
console.log(person['isMale']); // ์ถœ๋ ฅ: true

ํ”„๋กœํผํ‹ฐ๋Š” ํ‚ค(key)์™€ ๊ฐ’(value)๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ํ‚ค๋Š” ๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„๋œ๋‹ค. ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•  ๋•Œ๋Š” ์  ํ‘œ๊ธฐ๋ฒ• ๋˜๋Š” ๋Œ€๊ด„ํ˜ธ ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํ”ํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•์ด๋ฉฐ ๋ฆฌํ„ฐ๋Ÿด์„ ์ƒ์šฉํ•ด ์ดˆ๊ธฐํ™” ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

function Person(name, age) {
  this.name = name;
  this.age = age;
}

Person.prototype.sayHello = function() {
  console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
};

// Person ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด ์ƒ์„ฑ
let person1 = new Person("John", 30);
let person2 = new Person("Alice", 25);

// ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
person1.sayHello(); // ์ถœ๋ ฅ: "Hello, my name is John and I'm 30 years old."
person2.sayHello(); // ์ถœ๋ ฅ: "Hello, my name is Alice and I'm 25 years old."

์œ„ ์ฝ”๋“œ๋Š” ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ ๊ฐ์ฒด์˜ ์ดˆ๊ธฐ ์ƒํƒœ๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋งค๊ฐœ๋ฒผ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค.

 

prototype - JavaScript

์ด๋ฒˆ ์ˆ˜์—…์€ ์ƒ์†์ˆ˜์—…์˜ ์—ฐ์žฅ์„ ์ƒ์— ์žˆ๋‹ค. ์ƒ์†์˜ ๊ตฌ์ฒด์ ์ธ ์ˆ˜๋‹จ์ธ prototype์— ๋Œ€ํ•ด์„œ ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž. prototype ๊ทธ๋Ÿผ prototype์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ํ•œ๊ตญ์–ด๋กœ๋Š” ์›ํ˜•์ •๋„๋กœ ๋ฒˆ์—ญ๋˜๋Š” prototype์€ ๋ง ๊ทธ๋Œ€๋กœ

opentutorials.org

์•„๋ž˜ ์ฝ”๋“œ๋Š” ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด๊ณผ ์ƒ์„ฑ์ž ํ•จ์ˆ˜, ์ด ๋‘๊ฐ€์ง€ ์ฝ”๋“œ๋“ค ์ด์šฉํ•œ ์ฝ”๋“œ์ด๋‹ค.

function Person(name, age) {
  this.name = name;
  this.age = age;
}

let person1 = new Person("John", 30);

let person2 = {
  name: "Alice",
  age: 25,
  isMale: true
};
console.log(person1.name); // John
console.log(person2.name); // Alice

 

728x90
Comments