Javascript cơ bản: class và OOP

Tạo ra các đối tượng thường theo 3 cách sau:

  • Tạo trược tiếp: var obj = {}
  • Thông qua function có đầu vào để tạo ra các prototype
  • Thông qua class có đầu vào để tạo ra các prototype
// Tạo trược tiếp object
var user1 = {name: 'messi', age: 31, email: '[email protected]'}
var user2 = {name: 'ronaldo', age: 32, email: '[email protected]'}
var user3 = {name: 'nani', age: 31, email: '[email protected]'}
// Tạo thông qua function
function User(name, age, emmail){
this.name = name;
  this.age = age;
  this.email = email;
  this.increaseAge = function(){
   this.age += 1; //tăng thêm tuổi  
  }
}

const user1 = new User('messi', 31, '[email protected]')
const user2 = new User('ronaldo', 32, '[email protected]')
const user3 = new User('nani', 31, '[email protected]')
// Tạo thông qua class
class User {
constructor(name, age, email){
  this.name = name;
    this.age = age;
    this.email = email;
  }
  increaseAge(){
   this.age += 1; //tăng thêm tuổi  
  }
}
const user1 = new User('messi', 31, '[email protected]')
const user2 = new User('ronaldo', 32, '[email protected]')
const user3 = new User('nani', 31, '[email protected]')

OOP là gì?

nó là viết tắt của Object Oriented Programming (lập trình hướng đối tượng). OOP là cách để viết chương trình tập trung vào đối tượng (object hay instance), mỗi đối tượng bao gồm thuộc tính (properties hay attributes) và các phương thức hành động (methods).
Một số tài liệu về OOP trong Javascript:

class HumanBeing {
  constructor(hands, legs, eyes) {
    this._hands = hands;
    this._legs = legs;
    this._eyes = eyes;
  }

  walk() {
    console.log(`Loài người Đi bằng ${this._legs} chân`);
  }
}

var human = new HumanBeing(2, 2);
human.walk();

class Male extends HumanBeing {
  constructor(name, hands, legs, eyes) {
    super(hands, legs, eyes);
    this._name = name;
  }

  walk() {
    console.log(`${this._name} đi bằng ${this._legs} chân trên giày thấp.`);
  }
}

class Female extends Male {
  constructor(name, hands, legs, eyes) {
    super(name, hands, legs, eyes);
  }

  walk() {
    console.log(`${this._name} đi bằng ${this._legs} chân trên giày cao gót.`);
    return this;
  }
  makeUp() {
    console.log(`${this._name} trang điểm trên ${this._eyes} mắt.`);
  }
}

var vanAn = new Male("Văn An", 2, 2, 2);
vanAn.walk();

var thiTham = new Female("Thị Thắm", 2, 2, 2);
thiTham.walk().makeUp();