JavaScript this Keyword

ਇੰਸਟੈਂਸ

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

ਆਪਣੇ ਅਨੁਸਾਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ

this ਕੀ ਹੈ?

JavaScript this ਕੀਵਾਰਡ ਹੈ ਇਸ ਦੇ ਮਾਲਕ ਅਧਾਰਕ.

ਇਸ ਦੀ ਕੀਮਤ ਇਸ ਦੇ ਵਰਤੇ ਜਾਣ ਦੇ ਸਥਾਨ 'ਤੇ ਵੱਖ ਵੱਖ ਹੁੰਦੀ ਹੈ:

  • ਮੈਥਡ ਵਿੱਚ:this ਹੈ ਮਾਲਕ ਵਸਤੂ.
  • ਅਲੱਗ ਹੈ:this ਹੈ ਵਿਸ਼ਵ ਅਧਾਰਕ ਵਸਤੂ.
  • ਫੰਕਸਨ ਵਿੱਚ:this ਹੈ ਵਿਸ਼ਵ ਅਧਾਰਕ ਵਸਤੂ.
  • ਫੰਕਸਨ ਵਿੱਚ ਸਖਤ ਮੋਡ ਵਿੱਚ:this ਹੈ undefined。
  • ਈਵੈਂਟ ਵਿੱਚ:this ਹੈ ਈਵੈਂਟ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਵਾਲਾ ਐਲੀਮੈਂਟ。

ਵਰਗ call() ਅਤੇ apply() ਅਜਿਹੇ ਮੈਥਡ ਇਸ this ਨੂੰ ਕਿਸੇ ਵੀ ਅਧਾਰਕ ਵਿੱਚ ਲਿਆ ਸਕਦੇ ਹਨ。

ਮੈਥਡ ਵਿੱਚ this

ਅਧਾਰਕ ਮੈਥਡ ਵਿੱਚ:this ਹੈ ਇਸ ਫੰਕਸਨ ਦਾ ਮਾਲਕ.

ਇਸ ਪੰਨੇ ਦੇ ਉੱਪਰ ਵਾਲੇ ਉਦਾਹਰਣ ਵਿੱਚ:this ਹੈ person ਅਧਾਰਕ.

person ਅਧਾਰਕ ਹੈ fullName ਫੰਕਸਨ ਦਾ ਮਾਲਕ.

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

ਆਪਣੇ ਅਨੁਸਾਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ

ਅਲੱਗ this

ਅਲੱਗ ਤੋਂ ਵਰਤੇ ਹੋਏ ਹੈ ਤਾਂ ਮਾਲਕ ਵਿਸ਼ਵ ਅਧਾਰਕ ਵਸਤੂ ਹੈ ਇਸ ਲਈ: this ਹੈ ਵਿਸ਼ਵ ਅਧਾਰਕ ਵਸਤੂ.

ਬਰਾਉਜ਼ਰ ਵਿੰਡੋ ਵਿੱਚ ਵਿਸ਼ਵ ਅਧਾਰਕ ਵਸਤੂ ਹੈ: [object Window]:

ਇੰਸਟੈਂਸ

var x = this;

ਆਪਣੇ ਅਨੁਸਾਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ

ਸਖਤ ਮੋਡ ਵਿੱਚ ਅਲੱਗ ਤੋਂ ਵਰਤੇ ਹੋਏ: this ਹੈ ਵਿਸ਼ਵ ਅਧਾਰਕ ਵਸਤੂ: [object Window]:

ਇੰਸਟੈਂਸ

"use strict";
var x = this;

ਆਪਣੇ ਅਨੁਸਾਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ

ਫੰਕਸਨ ਵਿੱਚ this (ਮੂਲਭੂਤ)

JavaScript ਫੰਕਸਨ ਵਿੱਚ ਫੰਕਸਨ ਦਾ ਮਾਲਕ ਮੂਲਭੂਤ ਬਾਂਧ ਹੈ: this.

ਇਸ ਵਿੱਚ ਫੰਕਸਨ ਵਿੱਚ:this ਹੈ ਵਿਸ਼ਵ ਅਧਾਰਕ ਵਸਤੂ: [object Window].

ਇੰਸਟੈਂਸ

function myFunction() {
  return this;
}

ਆਪਣੇ ਅਨੁਸਾਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ

ਫੰਕਸਨ ਵਿੱਚ this (ਸਖਤ ਮੋਡ)

JavaScript ਸਖਤ ਮੋਡ ਵਿੱਚ ਮੂਲਭੂਤ ਬਾਂਧ ਨਹੀਂ ਦਿੰਦਾ。

ਇਸ ਲਈ ਫੰਕਸਨ ਵਿੱਚ ਵਰਤਦੇ ਹੋਏ ਸਖਤ ਮੋਡ ਵਿੱਚ:this ਹੈ ਅਣਮਾਨਤ (undefined})

ਇੰਸਟੈਂਸ

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

ਆਪਣੇ ਅਨੁਸਾਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ

ਈਵੈਂਟ ਹੰਡਲਰ ਵਿੱਚ this

HTML ਈਵੈਂਟ ਹੰਡਲਰ ਵਿੱਚ:this ਹੈ ਇਸ ਈਵੈਂਟ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਵਾਲਾ HTML ਐਲੀਮੈਂਟ:

ਇੰਸਟੈਂਸ

<button onclick="this.style.display='none'">
  ਮੈਂ ਹਟਾਓ!
</button>

ਆਪਣੇ ਅਨੁਸਾਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ

ਅਧਾਰਕ ਮੈਥਡ

ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ ਹੈ:this ਹੈ person ਅਧਾਰਕ (person ਫੰਕਸਨ ਦਾ ਮਾਲਕ ਹੈ):

ਇੰਸਟੈਂਸ

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

ਆਪਣੇ ਅਨੁਸਾਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ

ਇੰਸਟੈਂਸ

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

ਆਪਣੇ ਅਨੁਸਾਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ

ਫਿਰ ਕਹਿੰਦੇ ਹਨthis.firstName ਮਤਲਬ thisਦੇ (person) ਦੇ firstName ਪ੍ਰਤੀਯੋਗੀ

ਸਪੱਸ਼ਟ ਫੰਕਸ਼ਨ ਬਾਂਧ

call() ਅਤੇ apply() ਮੋਥਡ ਪ੍ਰਤੀਯੋਗੀ ਜਾਂਦੇ ਹਨ ਜੋ ਪ੍ਰਤੀਯੋਗੀ ਜਾਂਦੇ ਹਨ ਜੋ ਪ੍ਰਤੀਯੋਗੀ ਜਾਂਦੇ ਹਨ

ਉਹ ਦੋਵੇਂ ਦੂਜੇ ਆਬਜੈਕਟ ਦੇ ਮੇਥਡ ਵਜੋਂ ਆਪਣਾ ਪਾਰਾਮੀਟਰ ਪ੍ਰਵੇਸ਼ ਕਰ ਸਕਦੇ ਹਨ。

ਤੁਸੀਂ ਇਸ ਸਿੱਖਿਆ ਦੇ ਬਾਅਦ ਇਸ ਬਾਰੇ ਪੜ੍ਹ ਸਕਦੇ ਹੋ call() ਅਤੇ apply() ਦੇ ਹੋਰ ਸਮੱਗਰੀ

ਨਿਚੇ ਦੇ ਉਦਾਹਰਣ ਵਿੱਚ, ਜਦੋਂ person2 ਨੂੰ person1.fullName ਵਿੱਚ ਪਾਰਾਮੀਟਰ ਵਜੋਂ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਤਾਂ,this ਪ੍ਰਤੀਯੋਗੀ person2 ਨੂੰ ਉਲੇਖ ਕਰੇਗਾ, ਭਾਵੇਂ ਉਹ person1 ਦਾ ਮੇਥਡ ਹੋਵੇ:

ਇੰਸਟੈਂਸ

var person1 = {
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
}
var person2 = {
  firstName:"Bill",
  lastName: "Gates",
}
person1.fullName.call(person2);  // ਵਾਪਸ "Bill Gates" ਦੇਣਗੇ

ਆਪਣੇ ਅਨੁਸਾਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ