728x90
https://meongae.tistory.com/97
JavaScript는 Object의 create() 메소드를 활용하여 손쉽게 구현 가능하다
const car = {
noOfWheels: 4,
start() {
return `start ${this.noOfWheels}`;
},
stop() {
return `stop ${this.noOfWheels}`;
},
};
const myCar1 = Object.create(car, { owner: { value: 'Mung1' } });
const myCar2 = Object.create(car, { owner: { value: 'Mung2' } });
console.log(myCar1.__proto__ === car); // true
console.log(myCar2.__proto__ === car); // true
myCar2.noOfWheels += 10
console.log(myCar1.start()) // start 4
console.log(myCar1.stop()) // stop 4
console.log(myCar1.noOfWheels) // 4
console.log(myCar1.owner) // Mung1
console.log(myCar2.noOfWheels) // 14
class Car {
constructor (_wheels) {
this.noOfWheels = _wheels;
}
start() {
return `start ${this.noOfWheels}`;
}
stop() {
return `stop ${this.noOfWheels}`;
}
}
const car = new Car(4);
const cloneCar1 = Object.create(car, { owner: { value: 'Mung1' } });
const cloneCar2 = Object.create(car, { owner: { value: 'Mung2' } });
console.log(cloneCar1.__proto__ === car); // true
console.log(cloneCar2.__proto__ === car); // true
cloneCar2.noOfWheels += 10
console.log(cloneCar1.start()) // start 4
console.log(cloneCar1.stop()) // stop 4
console.log(cloneCar1.noOfWheels) // 4
console.log(cloneCar1.owner) // Mung1
console.log(cloneCar2.noOfWheels) // 14
728x90
'Web > JavaScript' 카테고리의 다른 글
[Design Pattern] 9. Module Pattern (0) | 2023.11.19 |
---|---|
[Design Pattern] 8.Builder Pattern (0) | 2023.11.18 |
[Design Pattern] 6. Decorator Pattern (0) | 2023.11.16 |
[Design Pattern) 5.Command Pattern (0) | 2023.11.14 |
[Design Pattern] 4. Facade Pattern (0) | 2023.11.13 |