Xây dựng các hàm và sự kiệntrong javascript Bởi: Khoa CNTT ĐHSP KT Hưng Yên Hàm function trong javascript Khái niệm : Hàm là 1 tập các câu lệnh có thể được chạy bất cứ khi nào, ở đâu.H
Trang 1Xây dựng các hàm và sự kiện
trong javascript
Bởi:
Khoa CNTT ĐHSP KT Hưng Yên
Hàm ( function ) trong javascript
Khái niệm : Hàm là 1 tập các câu lệnh có thể được chạy bất cứ khi nào, ở đâu.Hàm
được khai báo với từ khóa function , theo sau là 1 tập các đối số, cuối cùng là đoạn mã lệnh sẽ được đặt trong cặp dấu ngoặc Cú pháp cơ bản :
function functionName(arg0, arg1, ,argN)
{
Statements
}
Ví dụ :
function sayHi(sName, sMessage)
{
alert(“Hello “ + name + “,” + sMessage);
}
sayHi(“Nicholas”, “how are you today?”);
Kết quả sẽ như sau:
Trang 2Lưu ý: trong javascript không có khái niệm overloading
Ví dụ :
function doAdd(iNum)
{
alert(iNum + 100);
}
function doAdd(iNum)
{
alert(iNum + 10);
}
doAdd(10); // Nó sẽ gọi hàm số 2, kết quả 20
Đối tượng arguments
Javascript hỗ trợ đối tượgn arguments cho phép bạn có thể sử dụng các đối mà không cần phải biết tên
Nó là 1 array của các đối số, bắt đầu từ chỉ số 0
function sayHi()
{if (arguments[0] == “bye”)
{return;}alert(arguments[0]);}
Bạn có thể sử dụng thuộc tính length để biết số lượng đối số của hàm
Trang 3function howManyArgs()
{
alert(arguments.length);
}
Đối tượng Function
Trong javascript hàm được coi như là 1 biến đối tượng
var sayHi = new Function(“sName”, “sMessage”, “alert(\”Hello \” + sName + \”, \” + sMessage + \”);”);
Tương đương với :
function sayHi(sName, sMessage) {
alert(“Hello “ + sName + “,” + sMessage);
}
Trong 1 hàm, bạn có thể sử dụng các biến được khai báo bên ngoài thân hàm
var sMessage = “Hello World!”;
function sayHelloWorld() {
alert(sMessage);
}
sayHelloWorld();
Nguồn : Wrox - Professional JavaScript For Web Developers
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:
Code:
<script language="JavaScript">
Trang 4function tên_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ố_2tê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ụ:
Code:
<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>
Trang 5Đ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: Code:
<script language="JavaScript">
Function tenham()
{
thân hàm;
}</script>
Một ví dụ sử dụng hàm không tên trong JavaScript:
Code:
<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