[Javascript]ClassとObjectの違い


JavaScriptは、プロトタイプベースのオブジェクト向け言語です.
多くの人はJavaScriptがオブジェクト向けのプログラミング言語ではなく関数式プログラミング言語であることを知っていますが、実際にはプロトコルタイプに基づく強力なオブジェクト向けプログラミングを提供するマルチモデル言語です.

🌹 Class

class Person {
  // constructor
  constructor(name, age) {
    // fields
    this.name = name;
    this.age = age;
  }
  // methods
  speak() {
    console.log(`${this.name}: hello!`);
  }
}
私たち.🐟🍞フナのせんべい🐟🍞作成すると仮定します.
では、フナ餅を入れる前に、フナ餅はいろいろなフナ餅でいいです.小豆を入れると小豆フナ餅、クリームを入れるとクリームフナ餅になるように、この中空のフナ餅(テンプレート)を等級(Class)に分けることができます.
💕 特長
✔データがありません.(クリームや小豆がないことを想像してみてください)
✔は一度しか発表できません.
✔メモリを割り当てません.
✔ES 6増加の友達.

🌹 Object


オブジェクトはデフォルトで宣言されます.
// 첫번째 방법
const obj = { name:'앤쨩', age:24 };
// 두번째 방법
const obj2 = new Object( name:'앤쨩', age:24);
クラスを使用してオブジェクトを作成します.
class Person {
  // constructor 생성자
  constructor(name, age) {
    // fields
    this.name = name;
    this.age = age;
  }
  // methods
  speak() {
    console.log(`${this.name}: hello!`);
  }
}
// 위의 Class로 Object 만들기
conse anne = new Person('anne', '24');
console.log(anne.name); // anne
console.log(anne.age); // 24
anne.speak(); // anne: hello!
🐟🍞空いているフナ餅🐟🍞(Class)にクリームや小豆(Data)を入れると、これが対象と理解できます.
💕 特長
メモリを割り当てます.
✔オブジェクトのみを使用する場合は、後で他の項目を追加できます.それはこのようなことをすることができます.
const person = { name:'anne', age: 24};
print(person);
--- // 또다른 프로퍼티 추가
person.hasJob = true;
console.log(person.hasJob); // true
--- // 프로퍼티 삭제
delete person.hasJob;
console.log(person.hasJob); // undefined
他の言語ではよくあることではありません.ただし、このようにダイナミックに符号化すると、ロックが容易になる可能性がありますが、メンテナンスが困難で予想できないエラーが発生します.
🧩 チップ
/*
- .(dot)
코딩하는 그 순간 그 key에 해당하는 값을 받아보고 싶을때
- Computed properties
정확하게 어떤 key가 필요한지 모를때 (런타임에서 결정될때)
*/
console.log(person.name);
console.log(person['name']);
---
person.hasJob = true;
person['hasJob'] = true;
フナ餅にたとえたDREAM CODE ELLYに敬意を表します.🙏🏻