Javascript Object là gì mà khó hiểu thế?

Dạo này trên group facebook có rất nhiều bạn hỏi về Object trong Javascript, có bạn hỏi nó có ứng dụng gì trong thực tế không, có bạn thì lại bảo object qua khó để tìm hiểu. Ok mọi thứ rất đơn giản và giải đáp thông qua kiến thức về lập trình hướng đối tượng nhé, nên trước tiên hãy đọc bài đó để hiểu sơ lược. Thực tế đối tượng giúp chương trình nhìn sáng hơn, bạn sẽ không phải thấy một mớ hổn độn bên trong một chương trình được viết bằng Javascript.

Lưu ý: Bài này mang tính chất giải trí nên không sử dụng định nghĩa đúng, có nghĩa là mình sử dụng ngôn từ bình thường để giải thích.

1. Hiểu cơ bản Object là gom nhóm

Phần này sẽ gây ra nhiều tranh cãi bởi câu nói "object là gom nhóm" là hoàn toàn sai nhé các bạn, tuy nhiên vì muốn các bạn dễ tiếp thu thì mình xin phép được tự tin phát biểu câu đó.

Gom nhóm biến

Trước đây khi khai báo danh sách các biến thì ta làm như sau:

Code
// Khai báo
var name = "Nguyễn Văn Cường";
var email = "TheHalfHeart@gmail.com";
var blog = "freetuts.net";

// Sử dụng
console.log(name);
console.log(email);
console.log(blog);

Nhưng nếu sử dụng object thì ta sẽ gom nhóm lại và truy xuất các biến thông qua dấu chấm ..

Code
// Khai báo
var profile = {
    name    : "Nguyễn Văn Cường",
    email   : "TheHalfHeart@gmail.com",
    blog    : "freetuts.net"
};

// Sử dụng
console.log(profile.name);
console.log(profile.email);
console.log(profile.blog);

Gom nhóm hàm

Và dưới đây là cách khai báo nhiều hàm.

Code
// Khai báo
function a(){
    
}

function b(){
    
}

// Sử dụng
a();
b();
     

Nhưng sử dụng object thì ta làm như sau:

Code
var obj = {
    a : function(){
        
    },
    b : function(){
        
    }
};
// Sử dụng
obj.a();
obj.b();

Các bạn hãy so sánh hai chương trình để suy luận ra sự khác nhau nhé :)

2. Chương trình không sử dụng Object

Giả sử mình cần viết một chương trình quản lý học sinh, lúc này mình sẽ định nghĩa một số hàm như sau:

Code
function addStudent(id, name){
    document.write("Thêm sinh viên " + name + " có ID là " + id);
}

function removeStudent(id){

    document.write("Xóa sinh viên có ID là " + id);
}

function editStudent(id, name)
{
    document.write("Sửa tên sinh viên có ID là " + id + " sang tên " + name);
}

Lúc này bạn sẽ sử dụng như sau:

Code
// Thêm
addStudent("1", "Nguyễn Văn Cường");

// Sửa
editStudent("1", "Nguyễn Văn Cường - Freetuts.net");

// Xóa
removeStudent("1");

Nhìn có vẻ rất gọn phải không các bạn, tuy nhiên sẽ không chuyên nghiệp bằng chương trình dưới đây.

3. Chương trình có sử dụng Object

Nếu bạn để kỹ thì sẽ thấy tất cả các thao tác thêm, xóa, sửa đều tác động đến đối tượng sinh viên phải không nhỉ? Chính xác là như vậy, khi quan lý đối tượng sinh viên này chúng ta hay thực hiện các thao tác đó là thêm, xóa và sửa sinh viên, ba thao tác này chính là ba hàm mà mình đã định nghĩa ở trên. Mỗi sinh viên sẽ quản lý ID và tên của sinh viên đó, có nghĩa khi thực hiện ba thao tác đó ta phải truyền các thông tin vào ở dạng tham số của hàm..

Xét chương trình dưới đây:

Code
var Student = {
 
    id : "",
    name : "",
 
    add : function(){
        document.write("Thêm sinh viên " + this.name + " có ID là " + this.id);
    },
    remove : function(){
        document.write("Xóa sinh viên có ID là " + this.id);
    },
    edit : function(){
        document.write("Sửa tên sinh viên có ID là " + this.id + " sang tên " + this.name);
    }
};
 

 
// Gán gái trị cho các thuộc tính
Student.name = "Nguyễn Văn Cường";
Student.id = "1";
 
// Thực hiện một số hành động
Student.add();
Student.edit();
Student.remove();

Cả hai chương trình đều có chức năng tương tự nhau, tuy nhiên nếu xét về code thì chương trình này dài hơn ở trên, nhưng xét về tính hiệu quả trong việc quản lý code thì chương trình trên không bằng.

4. Lời kết

Như vậy object chính là cách chúng ta sử dụng lập trình hướng đối tượng trong Javascript. Các bạn phải hiểu và sử dụng thành thạo Object bởi vì hầu hết cá JS Framework hiện nay đều sử dụng Object làm nền tảng.

Qua bài này mình chỉ muốn trình bày sơ lược qua về Object trong Javascript, và vì mình có trình bày nó ở trong series học Javascript căn bản rồi nên mình không muốn giải thích gì thêm, nếu bạn vẫn chưa hiểu thì hãy đến series đó để tìm hiểu nhé.

Nguồn: freetuts.net

KHÓA HỌC ĐANG GIẢM GIÁ

FEDU - 25 – Thiết kế hiệu ứng bằng Javascript và illustrator

(Giảng viên: NGUYỄN ĐỨC VIỆT )

A PHP Error was encountered

Severity: Notice

Message: Undefined index: post_add_user_id

Filename: widgets/tool_all.php

Line Number: 26

Backtrace:

File: /home/freetuts/public_html/site/views/widgets/tool_all.php
Line: 26
Function: _error_handler

File: /home/freetuts/public_html/site/views/tut/detail.php
Line: 131
Function: view

File: /home/freetuts/public_html/site/controllers/Main_controller.php
Line: 20
Function: view

File: /home/freetuts/public_html/site/controllers/tut/Detail.php
Line: 137
Function: assign

File: /home/freetuts/public_html/sources/index.php
Line: 297
Function: require_once

File: /home/freetuts/public_html/index.php
Line: 23
Function: require_once

" title="XEM" target="_blank" rel="nofollow">XEM
FEDU - 22 – Học tất tần tật về Javascript từ đầu

(Giảng viên: Nguyễn Đức Việt)

A PHP Error was encountered

Severity: Notice

Message: Undefined index: post_add_user_id

Filename: widgets/tool_all.php

Line Number: 26

Backtrace:

File: /home/freetuts/public_html/site/views/widgets/tool_all.php
Line: 26
Function: _error_handler

File: /home/freetuts/public_html/site/views/tut/detail.php
Line: 131
Function: view

File: /home/freetuts/public_html/site/controllers/Main_controller.php
Line: 20
Function: view

File: /home/freetuts/public_html/site/controllers/tut/Detail.php
Line: 137
Function: assign

File: /home/freetuts/public_html/sources/index.php
Line: 297
Function: require_once

File: /home/freetuts/public_html/index.php
Line: 23
Function: require_once

" title="XEM" target="_blank" rel="nofollow">XEM
UNICA - Học lập trình JAVASCRIPT

(Giảng viên: )

XEM