Computer >> Máy Tính >  >> Lập trình >> Javascript

Chuỗi hàm trong JavaScript là gì?

Chuỗi hàm

Chuỗi hàm không là gì ngoài việc nhóm các hàm trong một dòng duy nhất bằng cách sử dụng ký hiệu dấu chấm . Kiểu chuỗi này làm cho mã rất ngắn gọn và cũng cải thiện hiệu suất. Ở đây chúng ta sẽ tìm hiểu về chuỗi hàm bằng cách sử dụng đối tượng thông thường.

a) Không có chuỗi hàm

Trong ví dụ sau, một đối tượng 'obj' được tạo và trong đối tượng đó có thuộc tính công cộng được gọi là 'i' được tạo bằng từ khóa 'this' và ban đầu được gán giá trị 0. sau đó, các hàm do người dùng định nghĩa được gọi là add (), subtract () và print () được tạo bên trong cùng một đối tượng 'obj'. Bây giờ, đối tượng "obj" sẽ hoạt động giống như một lớp (các thuộc tính của nó có thể được chia sẻ bởi các đối tượng khác).

Giờ đây, một đối tượng nữa được gọi là 'x' (do người dùng xác định) được tạo bằng từ khóa 'mới' và có thể truy cập được để sử dụng các thuộc tính của đối tượng "obj". Vì các hàm được khai báo bên trong "obj" như add (), subtract () và print () không được trả về, chuỗi hàm là không thể và không xác định được hiển thị dưới dạng đầu ra trong khi riêng lẻ (không xác định) các hàm đó sẽ thực hiện đầu ra dưới dạng 3 (người dùng cung cấp '5-2').

Ví dụ

<html>
<body>
<script>
   var obj = function(){
      this.i = 0;
      this.add = function(i){
         this.i += i;
       };
       this.subtract = function(i){
          this.i -= i;
       };
       this.print = function(){
          document.write(this.i);
          document.write("</br>");
          document.write(x.add(3));  // returns undefined
       }
   }
   var x = new obj();
   x.add(5);
   x.subtract(2);
   x.print(); // 5-2 = 3 so prints 3.
   x.add(5).subtract(2).print();  //  function chaining is not possible so undefined
</script>
</body>
</html>

Đầu ra

3
undefined

b) Với chuỗi hàm

Trong ví dụ sau, xem xét tình huống ví dụ trên, sử dụng câu lệnh "return this" do người dùng xác định, các hàm như add () và subtract () được trả về và có thể thực hiện chuỗi hàm ở đó bằng cách hiển thị 3 làm đầu ra.

Ví dụ

<html>
<body>
<script>
   var obj = function(){
      this.i = 0;
      this.add = function(i){
         this.i += i;
         return this;
      };
      this.subtract = function(i){
         this.i -= i;
         return this;
      };
      this.print = function(){
         document.write(this.i);
      }
   }
var x = new obj();
x.add(5).subtract(2).print();
</script>
</body>
</html>

Đầu ra

3