JavaScript Function bind()
- Προηγούμενη σελίδα JS συνάρτηση Apply
- Επόμενη σελίδα JS κλείσιμο
函数借用(Function Borrowing)
通过使用 bind() 方法,一个对象可以从另一个对象借用一个方法。
下面的例子创建了 2 个对象(person 和 member)。
member 对象借用了 person 对象的 fullname 方法:
例子
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);
保留 this
有时必须使用 bind() 方法来防止丢失 this.
在下面的例子中,person 对象有一个 display 方法。在 display 方法中,this 指的是 person 对象:
例子
const person = { firstName: "Bill", lastName: "Gates", display: function () { let x = document.getElementById("demo"); x.innerHTML = this.firstName + " " + this.lastName; } } person.display();
当函数用作回调时,this 会丢失。
这个例子将尝试在 3 秒后显示人名,但它会显示 undefined:
例子
const person = { firstName: "Bill", lastName: "Gates", display: function () { let x = document.getElementById("demo"); x.innerHTML = this.firstName + " " + this.lastName; } } setTimeout(person.display, 3000);
bind() 方法解决了这个问题。
在下面的例子中,bind() 方法用于将 person.display 绑定到 person。
这个例子将在 3 秒后显示人名:
例子
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);
Τι είναι το this;
στο JavaScript,this
λέξη-κλειδί αναφοράςαντικείμενο.
αναφέρεταιποιοςτο αντικείμενο εξαρτάται από τον τρόπο κλήσης (χρήσης ή κλήσης).
η λέξη-κλειδί this
αναφέρεται σε διαφορετικά αντικείμενα ανάλογα με τον τρόπο χρήσης
- στον ορισμό του μεθόδου του αντικειμένου
this
αναφέρεται στοαντικείμενο. - μόνο όταν χρησιμοποιείται ανεξάρτητα
this
αναφέρεταιγενικό αντικείμενο. - στον ορισμό της συνάρτησης
this
αναφέρεταιγενικό αντικείμενο. - στον ορισμό της συνάρτησης, σε μονοπατήτη λειτουργίας
this
είναιundefined
. - στο συμβάν
this
αναφέρονται στο στοιχείο που λαμβάνει το συμβάνστοιχεία. - call()、apply() και bind() και άλλες μεθόδους μπορούν να
this
αναφέρεται σεΟποιοδήποτε αντικείμενο.
Σημείωση:this
Δεν είναι μεταβλητή. Είναι μια λέξη-κλειδί. Δεν μπορείτε να την αλλάξετε this
τις τιμές.
Δείτε επίσης:
Εκμάθηση:JavaScript this
- Προηγούμενη σελίδα JS συνάρτηση Apply
- Επόμενη σελίδα JS κλείσιμο