Hàm trong lập trình JavaScript

Hàm là một khối các câu lệnh với một danh sách một hoặc nhiều đối số (có thể không có đối số) và thường có tên (mặc dù trong JavaScript hàm không nhất thiết phải có tên). Hàm có thể trả lại một giá trị. Cú pháp của hàm như sau:

<script language=”JavaScript”>
function tên_của_hàm(đối_số_1, đối_số_2)
{
các câu lệnh cần thực hiện mỗi khi hàm được gọi;
return giá_trị_cần_trả_về;
}

tên_hàm(1, 2); /*Gọi hàm tên_hàm với hai đối số 1 và 2 ứng với đối_số_1 và đối_số_2 */
tên_hàm(1); /* Gọi hàm tên_hàm với đối_số_1 có giá trị 1, đối_số_2 có giá trị undefined*/
</script>

Trong JavaScript, khi gọi hàm không nhất thiết phải gọi hàm với cùng số đối số như khi định nghĩa hàm, nếu số đối số ít hơn khi định nghĩa hàm, những đối số không được chuyển cho hàm sẽ mang giá trị undefined.

Các kiểu cơ bản sẽ được chuyển vào hàm theo giá trị, đối tượng sẽ được chuyển vào hàm theo tham chiếu.

Hàm là đối tượng hạng nhất trong JavaScript. Tất cả các hàm là đối tượng của nguyên mẫu Function. Hàm có thể được tạo và dùng trong phép toán gán như bất kỳ một đối tượng nào khác, và cũng có thể được dùng làm đối số cho các hàm khác. Do đó, JavaScript hỗ trợ hàm cấp độ cao. Ví dụ:

<script language=”JavaScript”>
    Array.prototype.fold =
    function (value, functor) {
        var result = value;
        for (var i = 0; i < this.length; i++) {
            result = functor(result, this[i]);
        }
        return result;
    }
    var sum = [1,2,3,4,5,6,7,8,9,10].fold(0, function (a, b) { return a + b })
</script>

Đoạn mã nguồn trên sẽ trả lại kết quả là 55.

Vì hàm trong JavaScript là đối tượng, lập trình viên có thể khởi tạo hàm không tên:

<script language=”JavaScript”>
    function() { thân hàm; }
</script>

Một ví dụ sử dụng hàm không tên trong JavaScript:

<script language=”JavaScript”>
    document.onkeypress = function(e) {
        alert(“Bạn vừa nhấn một phím trên bàn phím”);
    }
</script>

Hàm trên sẽ hiển thị thông báo khi một số phím trên bàn phím có thể gây sự kiện onkeypress được nhấn.

Mặc định, tất cả các thành phần của đối tượng thuộc phạm vi công cộng (public). Trong JavaScript, không có khái niệm thành phần riêng hay thành phần được bảo vệ (private và protected), tuy nhiên những tính năng này có thể được giả lập.

Chúc các bạn thành công với thiết kế website của mình!

FOLLOW US

Leave a Reply

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