Skip to main content

Command Palette

Search for a command to run...

CTN 04. Spread operator, Object.keys và static trong Class

Published
2 min read

Hello! I'm Zu.Doan

Series này mình muốn rèn luyện khả năng suy nghĩ và giải bài tập, qua đó để hiểu rõ hơn các khái niệm của Javascript.

Bài 1

const js = { language: "loosely type", label: "difficult" };

const edu = { ...js, level: "PhD" };

const newbie = edu;

delete edu.language;

console.log(Object.keys(newbie).length);

Lời giải:

const js = { language: "loosely type", label: "difficult" };

const edu = { ...js, level: "PhD" }; // edu = { language: "loosely type", label: "difficult", level: "PhD" };

const newbie = edu; // edu = { language: "loosely type", label: "difficult", level: "PhD" };

delete edu.language; // edu = { label: "difficult", level: "PhD" };

console.log(Object.keys(newbie).length);
// Object.keys(newbie) = ['label', 'level'] => Object.keys(newbie).length = 2

Kiến thức liên quan:

  • Spread operator
  • Object.keys trả về một mảng với thành phần là các key của object truyền vào

Bài 2

var candidate = {
  name: "Vuong",
  age: 30,
};

var job = {
  frontend: "Vuejs or Reactjs",
  backend: "PHP and Laravel",
  city: "Auckland",
};

class Combine {
  static get() {
    return Object.assign(candidate, job);
  }

  static count() {
    return Object.keys(this.get()).length;
  }
}

console.log(Combine.count());

Lời giải:

var candidate = {
  name: "Vuong",
  age: 30,
};

var job = {
  frontend: "Vuejs or Reactjs",
  backend: "PHP and Laravel",
  city: "Auckland",
};

class Combine {
  static get() {
    return Object.assign(candidate, job); // gộp 2 object: candidate và job thành một
  }

  static count() {
    return Object.keys(this.get()).length;
    // this.get() = object gộp từ 2 object candidate và job
    // Object.keys(this.get()) = mảng chứa keys của object trả về từ this.get()
    // Object.keys(this.get()).length = 5
  }
}

console.log(Combine.count());

Kiến thức liên quan:

  • Từ khóa static trong class sẽ cho phép truy cập tới phương thức (hoặc thuộc tính) của lớp ở bên ngoài theo cú pháp Class.staticMethod()

More from this blog

zujs

35 posts