toggle-toggle / javascript-basic

🌱우아한 테크코스 프론트엔드 자바스크립트 기초 스터디 입니다.
9 stars 0 forks source link

[2021.03.22] Object.create(), Object.assign() #11

Open bucketHaneul opened 3 years ago

bucketHaneul commented 3 years ago

Object.create()

new와 Object.create()의 차이

function Dog(){
    this.pupper = 'Pupper';
};

Dog.prototype.pupperino = 'Pups.';

var maddie = new Dog();

//Using New Keyword
console.log(maddie.pupper); // Pupper      
console.log(maddie.pupperino); // Pups.

var buddy = Object.create(Dog.prototype);

//Using Object.create()
console.log(buddy.pupper); // undefined
console.log(buddy.pupperino); // Pups.

Object.assign()

const copiedObj = Object.assign(target, obj);

console.log(copiedObj); //{c: 3, a: 1, b: 2}

- shallow copy이다.
```javascript
const person = {
  age: 100,
  name: {
    first: 'junwoo',
    last: 'park'
  }
};

const copied = Object.assign({}, person);

person.age = 1000;
person.name.first = 'paul';
// person객체의 프로퍼티를 바꾸면, copied 객체의 프로퍼티가 바뀐다.
console.log(copied.age);    // 100
console.log(copied.name.first); // 'paul'

출처