Hỏi về unnamed arguments trong javascript function



  • Trong js có khái niệm unnamed arguments, tức là function không cần chỉ rõ tên, số lượng tham số, ví dụ :

    function ABCDEFGH(){
      for(var i=0; i<arguments.length; i++) {
        console.log("Params: , " + arguments[i]); 
        // biến arguments kiểu array, chứa tham số truyền vào hàm
      }
     //... làm gì đó tiếp tục...
      return xxx;
    }
    

    Bây giờ, nói cho đơn giản, mình không muốn dùng cái tên dài ngoằn ABCDEFGH ở trên nữa, nhưng không thể chỉ mở code lên để đổi tên hàm (do hàm đã dùng ở nhiều nơi rồi, không thể đi tìm toàn bộ để đổi,..v.v..); cho nên mình sẽ khai báo thêm 1 hàm X mới:

    function X(){
    //...
    }
    

    Nhưng lại ko lẽ viết (copy & paste) toàn bộ nội dung hàm ABCD... ở trên vào đây ?!!, nên mình chỉ đơn giản gọi lại hàm đó:

    function X(){
      return   ABCDEFGH(/*  truyền cái gì ở đây??? */);  
    }
    

    Vấn đề phát sinh chính chỗ đó: làm sao truyền các tham số của X vào ABCD.. ở bên trong nhỉ???



  • Bạn tìm hiểu thêm về Function.prototype.

    function X(){
      ABCDEFGH.apply(this,arguments);  
    }
    


  • Ah, thank bạn.


Log in to reply