Đối số hàm trong javaScript

Đối số hàm trong javaScript

Có thể nói javaScript là ngôn ngữ hướng đối tượng, hầu như mọi thứ trong javaScript đều làm việc theo hướng đối tượng như chuỗi, mảng...bên trong mọi hàm javaSctipt đều tồn tại một biến theo ngữ cảnh có tên là arguments, nó không phải là một mảng đúng nghĩa vì mảng trong javaScript cũng là một đối tượng, với arguments bạn không thể thay đổi nó hay bạn không thể dùng phương thức push() để thêm những phần tử mới, nhưng bạn lại có thể truy cập những phần tử như cách trong mảng, nó cũng có thuộc tính length như trong mảng. Hãy xem xét những vị dụ sau để rõ hơn điều này.

Ví dụ bạn sẽ tạo ra một hàm với 2 đối số sau đó bạn sẽ gọi hàm trong 2 trường hợp: một là gọi hàm đó với 1 tham số, hai là gọi hàm đó với 2 tham số và tham số thứ 2 là một đối tượng, ở đây bạn sẽ sử dụng arguments để kiểm tra xem hàm có bao nhiêu đối số:

function sendMessage( msg, obj ) {
// Nếu có 2 đối số
if ( arguments.length == 2 )
  // gọi phương thức của đối tượng là đối số thứ 2
  obj.handleMsg( msg );
else
  alert( msg );
}
// Gọi hàm với một tham số
sendMessage( "Hello, World!" );

// Gọi hàm với tham số thứ 2 là một đối tượng có phương thức handleMsg
sendMessage( "How are you?", {
   handleMsg: function( msg ) {
     alert( "This is a custom message: " + msg );
  }
});

Ví dụ thứ 2 rõ ràng hơn, chúng ta sẽ truy cập arguments và gán các phần tử của nó vào một mảng đúng nghĩa:

function makeArray() {
  var arr = [];
  // Lặp các phần tử trong arguments và đưa vào mảng arr
  for ( var i = 0; i < arguments.length; i++ ) {
    arr.push( arguments[i] );
  }
  return arr;
}
var myarr = makeArray('one','two');

// Kiểm tra mảng trả về từ hàm makeArray
for(var i=0; i<myarr.length; i++){
  document.write(myarr[i] +'<br />');
}

Tham khảo Apress.pro.javascript.techniques _ 2006 John Resig

Bạn thấy bài viết này như thế nào?: 
Average: 8 (1 vote)
Ảnh của Khanh Hoang

Khanh Hoang - Kenn

Kenn is a user experience designer and front end developer who enjoys creating beautiful and usable web and mobile experiences.

Bình luận (0)

 

Add Comment

Filtered HTML

  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Các thẻ HTML được chấp nhận: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Tự động ngắt dòng và đoạn văn.

Plain text

  • No HTML tags allowed.
  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Tự động ngắt dòng và đoạn văn.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Nokia N9 Preview and First Look

Nokia N9 Preview and First Look

Technology has spread its arms to endless horizons where everyday new inventions come into existence in this world.

Google tv 2.0 Review: Rising From The Fallen?

Google tv 2.0 Review: Rising From The Fallen?

The Google TV 2.0 has failed to sizzle in the market after raising the expectations of people high.

Hứơng dẫn tạo theme riêng cho Google Chrome

Hứơng dẫn tạo theme riêng cho Google Chrome

Hôm nay xeko xin giới thiệu một plugin miễn phí từ google có tên là Chrome Theme, bạn có thể tạo nên một Chrome hoàn hảo hơn cho chính bản thân mình.

Công ty diệt chuột T&C

 

Diet con trung