codersx-javascript-basic

THE NEW KEYWORD

Ví dụ

var today = new Date();

console.log(today); // Tue Nov 23 2020 09:19:11 GMT+0700 (Indochina Time)
var mouse = {
  weight: 0.2,
  color: 'black',
};

console.log(mouse);
var mouse = {
  weight: 0.2,
  color: 'black',
};

console.log('mouse : ', mouse); // mouse : {weight: 0.2, color: "black"}
var mouse1 = mouse;

console.log('mouse1: ', mouse1); // mouse1:  {weight: 0.2, color: "black"}

mouse.color = 'white'; // Change color.

console.log('mouse: ', mouse); // mouse:  {weight: 0.2, color: "white"}
console.log('mouse1: ', mouse1); // mouse1:  {weight: 0.2, color: "white"}

// Với cách này khi đổi thuộc tính đối tượng mouse sẽ làm mouse1 đổi theo.

mouse1

// Declare object
var mouse = {
  weight: 0.2,
  color: 'black',
};

console.log('mouse : ', mouse); // mouse : {weight: 0.2, color: "black"}
var mouse1 = mouse;

console.log('mouse1: ', mouse1); // mouse1:  {weight: 0.2, color: "black"}

mouse1.color = 'white'; // Change color.

console.log('mouse: ', mouse); // mouse:  {weight: 0.2, color: "white"}
console.log('mouse1: ', mouse1); // mouse1:  {weight: 0.2, color: "white"}

mouse1

Ôn lại kiếm thức

var mouse = {
  weight: 0.2,
  color: 'black',
  getColor: function () {
    console.log(this.color); // this as object mouse
  },
};

mouse.getColor(); // black
// Constructor Function
function Mouse() {
  this.type = 'mouse';
  this.color = 'black';
}
// Constructor Function
function Mouse(name, color) {
  this.name = name;
  this.color = 'black';
}
var mouse1 = new Mouse();
var mouse2 = new Mouse();

console.log('mouse1:', mouse1);
console.log('mouse2:', mouse2);

mouse1.color = 'white';

console.log('mouse1:', mouse1);
console.log('mouse2:', mouse2);

mouse1

function Mouse() {
  this.type = 'mouse';
  this.color = 'black';
}
var mouse1 = new Mouse();
var mouse2 = { type: 'mouse', color: 'black' };

console.log(mouse1); // Mouse {type: "mouse", color: "black"}
console.log(mouse2); //       {type: "mouse", color: "black"}

mouse1

// Constructor Function
function Mouse(name, color) {
  this.name = name;
  this.color = color;
}
var mouse1 = new Mouse('Jerry', 'orange');
var mouse2 = new Mouse('Mickey', 'Black');

console.log('mouse1:', mouse1);
console.log('mouse2:', mouse2);

mouse1

Lợi ích của việc dùng Constructor Function

mouse1 mouse1


Bài tập

Bài 1

Bài toán : Cat eat Mouse theo Object như sau:

var Tom = {
  name: 'Tom',
  stomach: [],
  eat: function (mouse) {
    this.stomach.push(mouse);
    return this; // Lưu ý: có return this để dùng method chaining
  },
};

var m1 = { name: 'm1' };
var m2 = { name: 'm2' };
var m3 = { name: 'm3' };

Tom.eat(m1).eat(m2).eat(m3); // method chaining gọi nhiều lần thuộc tính.

console.log(Tom);

Tom eat Tom eat

// Constructor Function
var Tom = {
  name: 'Tom',
  stomach: [],
  eat: function (mouse) {
    this.stomach.push(mouse);
    mouse.isEat();
    return this; // Lưu ý: có return this để dùng method chaining
  },
};

function Mouse(name, color) {
  this.name = name;
  this.color = color;
  this.status = 'alive';
  this.isEat = function () {
    this.status = 'die';
  };
}

var m1 = new Mouse('m1', 'black');
var m2 = new Mouse('m2', 'white');
var m3 = new Mouse('m3', 'blue');

Tom.eat(m1).eat(m2).eat(m3);

console.log(Tom);

Tom eat