JavaScript Function bind()

函数借用(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);

亲自试一试

ఈతిహాసిక సంబంధించిన సంబంధిత సంబంధిత కాపీ పరిష్కరించబడింది

కొన్నిసార్లు bind() మంథనం ఉపయోగించాలి కాబట్టి అది కొనసాగించబడుతుంది థిస్.

ఈ ఉదాహరణలో, person ఆబ్జెక్ట్ కు ఒక display మంథనం ఉంది. display మంథనంలోథిస్ ఇది person ఆబ్జెక్ట్ ను సూచిస్తుంది:

ప్రతిరూపం

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

亲自试一试

ఫంక్షన్ కిందికి వర్తించినప్పుడుథిస్ కొనసాగించబడదు.

ఈ ఉదాహరణలో 3 సెకన్ల తర్వాత ప్రజానామా చూపిస్తుంది, కానీ ఇది చూపిస్తుంది అనియత:

ప్రతిరూపం

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 中,థిస్ 关键字引用对象.

引用哪个对象取决于调用(使用或调用)的方式。

根据其使用方式,关键字 థిస్ 引用不同的对象:

  • 在对象方法中,థిస్ 引用该对象.
  • 单独使用时,థిస్ 引用గ్లోబల్ ఆబ్జెక్ట్.
  • 在函数中,థిస్ 引用గ్లోబల్ ఆబ్జెక్ట్.
  • ఫంక్షన్ లో ఉన్నప్పుడు, కట్ మోడ్ లో ఉన్నప్పుడుథిస్ ఉంది అనియత.
  • ఇవెంట్ లో ఉన్నప్పుడు ఉంటుందిథిస్ ఇవెంట్ అనుసంధానించిన పరిచయం చేసుకుంటాయిఎలిమెంట్.
  • call()、apply() మరియు bind() వంటి పద్ధతులు దానిని పరిచయం చేసుకుంటాయి థిస్ పరిచయం చేసుకుంటుందిఏ ఆబ్జెక్ట్.

మెరుగుపరచండి:థిస్ ఒక వ్యాక్యారం కాదు. ఇది ఒక కీలక పదం. మీరు దానిని మార్చలేరు థిస్ విలువలు.

మరియు ఇంకా చూడండి:

పాఠ్యక్రమం:జావాస్క్రిప్ట్ థిస్