Kigeuzi cha this cha Tumishiko la Kwa JavaScript

Mifano

var person = {
  firstName: "Bill",
  lastName : "Gates",
  id       : 678,
  fullName : function() {
    return this.firstName + " " + this.lastName;
  }
};

Jifunze tena

Ni nini this?

JavaScript this Kichwa cha kifaa kinachohusiana na kifaa cha kina cha kifaa.

Ni na thamani tofauti, kama inatumiwa kwa nafasi tofauti:

  • Kwenye method,this Ni kifaa cha mwenyekiti.
  • Kama inatumiwa peke yake,this Ni kifaa cha jumuiya.
  • Kwenye programu,this Ni kifaa cha jumuiya.
  • Kwenye programu, kina cha kina,this Ni hekima.
  • Kwenye matukio,this Ni kifaa cha kina cha matukio.

Kama call() na apply() Method hizi inaweza kuingia kifaa ilitumika kwa kuzingatia.

this katika method

Kwenye method ya kifaa,this Ni kifaa cha kifaa cha kifaa cha kifaa.

Kwenye matokeo ya ukurasa huo wa juu,this Ni kifaa cha person.

Kifaa cha person ni mmoja wa kifaa ya method ya fullName.

fullName : function() {
  return this.firstName + " " + this.lastName;
}

Jifunze tena

this peke yake

Kama inatumiwa peke yake, mmoja wa kina ni kifaa cha jumuiya, kwa hivyo this Ni kifaa cha jumuiya.

Kwenye kina cha kifungu cha mtandao wa wasifu, kina cha jumuiya ni: [object Window]:

Mifano

var x = this;

Jifunze tena

Kwenye modi ya kina, kama inatumiwa kwa kuzingatia peke yake, this Ni kifaa cha jumuiya. [object Window]:

Mifano

"use strict";
var x = this;

Jifunze tena

this katika programu (kwa kusikia)

Kwenye programu ya JavaScript, kina cha kifaa kinakirejea kina cha kwa kusikia kwa kuzingatia. this.

Kwa hivyo, kwenye programu,this Ni kifaa cha jumuiya. [object Window].

Mifano

function myFunction() {
  return this;
}

Jifunze tena

this katika programu (kina cha kina)

Modi ya kina ya JavaScript hawezi kirejea kina cha kwa kusikia.

Kwa hivyo, kama inatumiwa kwenye programu, kwenye modi ya kina,this Ni hekima (undefined)}

Mifano

"use strict";
function myFunction() {
  return this;
}

Jifunze tena

this katika programu ya matukio

Kwenye programu ya matukio ya HTML,this Ni kifaa cha HTML kinahusha hii matukio:

Mifano

<button onclick="this.style.display='none'">
  Klicka ili kufungua!
</button>

Jifunze tena

Method ya kifaa

Kwenye matokeo hii,this Ni pendekezo ya person (kama ni mmoja wa kifaa person, ambao ni mmoja wa kifaa kama kifaa kinachotumika):

Mifano

var person = {
  firstName  : "Bill",
  lastName   : "Gates",
  id         : 678,
  myFunction : function() {
    return this;
  }
};

Jifunze tena

Mifano

var person = {
  firstName: "Bill",
  lastName : "Gates",
  id       : 678,
  fullName : function() {
    return this.firstName + " " + this.lastName;
  }
};

Jifunze tena

kama ni mabayathis.firstName maana ni thiskwa (person) mifano wa firstName Mafano

Mwafikaji wa mifano

call() na apply() Yafaa za kufungua mifano ya JavaScript.

Zote zinaendelea kwa kutumia mifano mwingine kama kiparamu kumwambia mtu mtu huzina.

inaweza kureadha kwa kusomaa mafunzo ya hivi karibuni call() na apply() kueleza zaidi.

katika mifano iliyotengenezwa hapa, kama inatumika person2 kama kiparami kama person1.fullName,this itakuwa na person2, inaingia kwamba ni mtu wa person1:

Mifano

var person1 = {
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
}
var person2 = {
  firstName:"Bill",
  lastName: "Gates",
}
person1.fullName.call(person2);  // itakuwa na matokeo "Bill Gates"

Jifunze tena