JavaScript Function bind()

Borrowing hàm (Function Borrowing)

Bằng cách sử dụng phương thức bind(), một đối tượng có thể mượn phương thức từ một đối tượng khác.

ví dụ sau tạo ra 2 đối tượng (person và member).

đối tượng member mượn phương thức fullname của đối tượng person:

thực thể

const person = {
  firstName:\"Bill\",
  lastName: "Gates",
  fullName: function () {
    return this.firstName + \" \" + this.lastName;
  }
}
const member = {
  firstName:\"Hege\",
  lastName: "Nilsen",
}
let fullName = person.fullName.bind(member);

Thử ngay lập tức

giữ lại this

thỉnh thoảng phải sử dụng phương thức bind() để ngăn chặn việc mất đi this.

Trong ví dụ sau, đối tượng person có phương thức display. Trong phương thức display,this chỉ đến đối tượng:

thực thể

const person = {
  firstName:\"Bill\",
  lastName: "Gates",
  display: function () {
    let x = document.getElementById("demo");
    x.innerHTML = this.firstName + " " + this.lastName;
  }
}
person.display();

Thử ngay lập tức

Khi hàm được sử dụng làm hàm回调,this sẽ bị mất.

ví dụ này sẽ thử hiển thị tên người sau 3 giây, nhưng nó sẽ hiển thị undefined:

thực thể

const person = {
  firstName:\"Bill\",
  lastName: "Gates",
  display: function () {
    let x = document.getElementById("demo");
    x.innerHTML = this.firstName + " " + this.lastName;
  }
}
setTimeout(person.display, 3000);

Thử ngay lập tức

phương thức bind() đã giải quyết vấn đề này.

Trong ví dụ sau, phương thức bind() được sử dụng để gán person.display cho person.

ví dụ này sẽ hiển thị tên người sau 3 giây:

thực thể

const person = {
  firstName:\"Bill\",
  lastName: "Gates",
  display: function () {
    let x = document.getElementById("demo");
    x.innerHTML = this.firstName + " " + this.lastName;
  }
}
let display = person.display.bind(person);
setTimeout(display, 3000);

Thử ngay lập tức

this là gì?

trong JavaScript,this tham chiếu từ khóađối tượng.

tham chiếuký tự nàođối tượng phụ thuộc vào cách gọi (sử dụng hoặc gọi) nó.

tùy thuộc vào cách sử dụng, từ khóa this tham chiếu đến các đối tượng khác nhau:

  • trong phương pháp đối tượngthis tham chiếu đếnđối tượng.
  • sử dụng riêng lẻthis tham chiếuđối tượng toàn cục.
  • trong hàmthis tham chiếuđối tượng toàn cục.
  • trong hàm, trong chế độ chặt chẽ,thisundefined.
  • trong sự kiệnthis tham chiếu đến phần tử nhận sự kiệnthành phần.
  • các phương pháp như call()、apply() và bind() có thể chuyển this tham chiếu đếnmỗi đối tượng.

Lưu ý:this không phải biến. Nó là một từ khóa. Bạn không thể thay đổi this giá trị.

Xin xem thêm:

Hướng dẫn:JavaScript this