জেভাস্ক্রিপ্ট থিস কীওয়ার্ড

উদাহরণ

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

আপনার নিজেই প্রয়াস করুন

this কী হয়?

JavaScript this এই শব্দটি এটা সংশ্লিষ্ট অবজ্যেটকে নির্দেশ করে

এটা ভিন্ন মূল্যকে মালিকানা করে, তা ব্যবহারের অবস্থান নির্ভর করে

  • পদ্ধতিতেthis এটা মালিক অবজ্যেটকে নির্দেশ করে
  • এককভাবেthis এটা সমগ্র অবজ্যেটকে নির্দেশ করে
  • ফাংশনেthis এটা সমগ্র অবজ্যেটকে নির্দেশ করে
  • ফাংশনে, সতর্ক মোডেthis অসংজ্ঞিত
  • ঘটনায়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 (ডিফল্ট)

জাভাস্ক্রিপ্ট ফাংশনে, ফাংশনের মালিক ডিফল্ট বাঁধা 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এবং firstName প্রতিকৃতি

এক্সপ্লিসিট ফাংকশন বাইন্ডিং

call() এবং apply() প্রিমিটিভ জেভাস্ক্রিপ্ট মেথড

তারা দুটিই অন্য অবজেক্টকে প্রতিকৃতি করে মেথড কল করার জন্য ব্যবহার করা হয়

আপনি এই টিউটোরিয়ালের পরে তাদের বিষয়ে পড়তে পারেন call() এবং apply() আরও বিষয়ে

যখন person2 person1.fullName-এর প্রতিকৃতি হিসাবে person2-কে প্রতিকৃতি করা হয়,this যদি person2 person1.fullName-এর প্রতিকৃতি হয়, তবে person1 এর পদ্ধতি হবে:

উদাহরণ

var person1 = {
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
}
var person2 = {
  firstName:"Bill",
  lastName: "Gates",
}
person1.fullName.call(person2);  // ফলে "Bill Gates" আসবে

আপনার নিজেই প্রয়াস করুন