Function object trong JavaScript | Laptrinhcanban.com

Function object trong JavaScript

Trong Javascript thì hàm (function ) cũng là một loại là object (đối tượng), do đó chúng ta có thể sử dụng các thuộc tính và phương thức tích hợp sẵn trong object cho hàm. Chúng ta sẽ cùng làm rõ về function object trong JavaScript cũng như mối quan hệ giữa hàm và object sau bài học này.

function object trong JavaScript

Trong Javascript thì các hàm (function ) cũng là object (đối tượng). Khi tạo một hàm bằng cách khai báo hàm, một function object trong JavaScript sẽ được tạo ra. Chúng ta sử dụng một biến có tên để đặt tên cho hàm, và function object vừa tạo sẽ được gán vào biến này.

Ví dụ cụ thể, chúng ta định nghĩa hàm tính tổng find_sum() bằng cách khai báo nó như sau:

function find_sum(a, b){
console.log( a + b );
}

Sau khi khai báo hàm find_sum(), một function object được tạo ra và gán vào biến có tên find_sum. Biến find_sum sau khi được gán function object sẽ trở thành một object (đối tượng) đại diện cho hàm find_sum(), và chúng ta có thể kiểm tra giá trị của biến find_sum đó bằng cách in nó ra, hoặc kiểm tra kiểu dữ liệu của nó bằng hàm typleof() như sau:

function find_sum(a, b){
return a + b;
}

console.log(find_sum);
//> [Function: find_sum]

console.log(typeof(find_sum));
//> function

Thậm chí bạn cũng có thể gán biến find_sum này vào một biến khác, và cả hai biến lúc này đều trở thành function object đại diện cho hàm find_sum(), và bạn có thể gọi hàm như sau:

let tèo = find_sum;

find_sum(1,2);
//> 3

tèo(1,2);
//> 3

Lưu ý là nếu bạn gán một giá trị cụ thể vào các biến function object này thì chúng sẽ bị thay thế giá trị và không còn đại diện cho hàm nữa.

function find_sum(a, b){
console.log( a + b);
}
find_sum(1, 2);
//> 3

find_sum = 'Hello Javascript';

console.log(find_sum);
//> Hello Javascript

Và do chúng bị thay đổi giá trị và không còn đại diện cho hàm, nên nếu lúc này chúng ta gọi hàm bằng tên chúng, lỗi TypeError sẽ bị xảy ra:

find_sum(1, 2);

>> TypeError: find_sum is not a function

Sử dụng các thuộc tính và phương thức với fucntion object trong JavaScript

Do hàm (function ) cũng là một loại là object (đối tượng) trong JavaScript, do đó chúng ta có thể sử dụng các thuộc tính và phương thức tích hợp của object cho hàm.

Ví dụ, chúng ta có thể tìm độ dài của object (trong trường hợp function object thì sẽ là số lượng tham số được truyền vào trong hàm) bằng thuộc tính length trong JavaScript, cũng như là tìm tên của function object bằng thuộc tính name như sau:

function find_sum(a, b){
console.log( a + b);
}

console.log(find_sum.length);
//> 2

console.log(find_sum.name);
//> find_sum

Hoặc chúng ta có thể sử dụng phương thức call() với fucntion object như sau:

function find_sum(num){
console.log( this.a + this.b);
}
let x = {a:1, b:2}
find_sum.call(x);
//> 3

Về cách sử dụng Object trong JavaScript cũng như các thuộc tính và phương thức liên quan, Kiyoshi sẽ chia sẻ cho các bạn trong các bài viết sau.

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về Function object trong JavaScript rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về JavaScript trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.