Junior
რა არის 'this' საკვანძო სიტყვა?
sobes.tech AI
პასუხი AI-სგან
this යනු JavaScript හි මූලික වචනයක් වන අතර, එය වර්තමාන කේතය ක්රියාත්මක වන වස්තුවට යොමු වේ. එහි අගය යොමුවීමේ ක්රමය මත තීරණය වේ.
this හඳුනාගැනීමේ ප්රධාන මාර්ග:
- ගෝලීය සන්දර්භය: ක්රියාවලියෙන් පිටත,
thisයොමු වේ ගෝලීය වස්තුවට (windowබ්රවුසරයේ,globalNode.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 කේත ලිවීම සඳහා මූලික වේ.