Leearning Javascipt

Create Object (tạo đối tượng) có 2 cách

Object literals

//đối tượng có 1 thuộc tính và 1 phương thức (method)
var myCar = {
brand: 'Toyota',
run: function(){
console.log('running');
}
};

Object constructor

//Tạo 1 đối tượng mới
var myApple = new Object();

//Thêm các thuộc tính cho đối tượng
myApple.color = ‘red’;
myApple.shape = ’round’;
myApple.howSweet = function(){
console.log(‘I am sweet’);
};

Cách tạo hàng loạt các Object cùng loại/kiểu có cùng thuộc tính và phương thức như nhau:

Sử dụng mẫu khởi tạo:

function Fruit (_color, _name){
this.color = _color;
this.name = _name;

this.showName = function(){
console.log(this.name);
}
};

Với hàm khởi tạo này, ta có thể tạo hàng loạt các đối tượng kiểu Fruit như sau:

var mangoFruit = new Fruit('yellow', 'Mango');
var appleFruit = new Fruit('red', 'Apple');

Sử dụng prototype

function Fruit (_color, _name){
};

Fruit.prototype.color = ‘general_color’;
Fruit.prototype.name = ‘general_name’;
Fruit.prototype.showName = function(){
console.log(this.name);
};

Với cách này thì ta cũng vẫn sẽ sử dụng hàm Fruit() để tạo ra các đối tượng object như cách ở trên:

var mangoFruit = new Fruit('yellow', 'Mango');
var appleFruit = new Fruit('red', 'Apple');

 

Function được coi là một Object, bản thân nó cũng có một property tên là prototype
một prototype cũng là một object

Prototype của Object (dùng __proto__)
Prototype của Function (dùng để thêm property & method & có tính thừa kế)

Muốn một đối tượng được kế thừa thuộc tính & phương thức của một hàm khởi tạo thì các thuộc tính & phương thức phải được thêm vào qua prototype của function khởi tạo

Muốn thêm 1 thuộc tính & phương thức, mà cho phép kế thừa thì phải thêm qua prototype

Existing object & object Contructor

function Person(first, last, age, eye) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eye;
}

 

Leave a Reply

Your email address will not be published. Required fields are marked *