Sobes.tech
Junior

რა არის 'this' საკვანძო სიტყვა?

sobes.tech AI

პასუხი AI-სგან

this යනු JavaScript හි මූලික වචනයක් වන අතර, එය වර්තමාන කේතය ක්‍රියාත්මක වන වස්තුවට යොමු වේ. එහි අගය යොමුවීමේ ක්‍රමය මත තීරණය වේ.

this හඳුනාගැනීමේ ප්‍රධාන මාර්ග:

  • ගෝලීය සන්දර්භය: ක්‍රියාවලියෙන් පිටත, this යොමු වේ ගෝලීය වස්තුවට (window බ්‍රවුසරයේ, global Node.js හි).
  • සාමාන්‍ය ක්‍රියාවලිය: නො-ඉස්සරහට (strict mode) this යොමු වේ ගෝලීය වස්තුවට (හෝ undefined, ක්‍රියාවලියක් වස්තුවක් ලෙස ඇමතුම් වුවද, එම වස්තුව null හෝ undefined නම්). ඉස්සරහට, this සමාන වේ undefined:
  • වස්තුවේ ක්‍රමය: ක්‍රියාවලිය වස්තුවේ ක්‍රමයක් ලෙස ඇමතුම් වුවහොත් (. ඔප්රේටරය මඟින්), this යොමු වේ එම වස්තුවට:
  • සංඛ්‍යාතකරු: new මෙහෙයුම භාවිතා කිරීමේදී, this යොමු වේ නව නිර්මාණය වන වස්තුවට:
  • call(), apply(), bind() ක්‍රම: මෙම ක්‍රම මඟින්, ක්‍රියාවලිය ඇමතුම් කිරීමේදී this අගය පැහැදිලිව සකසා ගත හැකිය. bind() නව ක්‍රියාවලියක් this සමඟ ආවරණය කරයි, එවිට call() සහ apply() යොදාගෙන this සමඟ ක්‍රියාවලිය ඇමතුම් කරයි.
  • ආසන්න ක්‍රියාවලියන්: ආසන්න ක්‍රියාවලියන්ට තමන්ගේම this නොමැත. this ආසන්න ක්‍රියාවලිය තුළ, එය එම අවට පරිසරයෙන් ලෙක්සික අනුගාමියක් ලෙස උරුම ගනී.

උදාහරණ:

// ගෝලීය සන්දර්භය
console.log(this === window); // සත්‍ය (බ්‍රවුසරයේ)

// සාමාන්‍ය ඇමතුම
function myFunction() {
  console.log(this);
}
myFunction(); // window (නො-ඉස්සරහට)

// වස්තුවේ ක්‍රමය
const myObject = {
  myMethod: function() {
    console.log(this);
  }
};
myObject.myMethod(); // myObject

// සංඛ්‍යාතකරු
function MyConstructor() {
  this.value = 10;
  console.log(this);
}
const instance = new MyConstructor(); // නව වස්තුව

// call(), apply(), bind()
function greet(name) {
  console.log("Hello, " + name + "! My name is " + this.name);
}
const person = { name: "Alice" };
greet.call(person, "Bob"); // Hello, Bob! My name is Alice
greet.apply(person, ["Bob"]); // Hello, Bob! My name is Alice
const boundGreet = greet.bind(person);
boundGreet("Bob"); // Hello, Bob! My name is Alice

// ආසන්න ක්‍රියාවලිය
const arrowFunction = () => {
  console.log(this);
};
arrowFunction(); // window (ගෝලීය සන්දර්භයේ නම්)

this කෙසේ හඳුනාගන්නාද යන්න තේරුම් ගැනීම විවිධ සන්දර්භවල නිවැරදි JavaScript කේත ලිවීම සඳහා මූලික වේ.