راهنمای کلمه کلیدی “این” در جاوا اسکریپت

درک این کلمه کلیدی یک مفهوم جاوا اسکریپت دشوار است. با این حال، تبدیل شدن به یک توسعه دهنده عالی مستلزم درک مفاهیمی مانند کلمه کلیدی است. این یک مفهوم رایج در هر کد جاوا اسکریپت است، از این رو یک اصطلاح باید درک شود. به بیان ساده، این کلمه کلیدی به شیئی که به آن تعلق دارد اشاره دارد. همچنین به عنوان یک ویژگی از یک محتوای اجرایی تعریف می شود که معمولاً زمانی که در حالت سخت نیست به یک شی اشاره می کند. کلمه کلیدی عمدتاً در زمینه برنامه نویسی شی گرا استفاده می شود. در اینجا یک مثال برای درک بهتر آن وجود دارد.
let studentDetails = {
firstName: "James",
lastName: "Kyle",
gender: "Male",
age: 22,
salute: function () {
return (
"Hello, I am " +
this.firstName +
" " +
this.lastName +
", a student with passion in programming"
)
},
}
console.log(studentDetails.salute())
در مثال، یک شی StudentDetails وجود دارد که دارای چهار ویژگی و یک روش سلام است. هنگامی که متد سلامی StudentDetails فراخوانی می شود، console.log خروجی خواهد داشت.
Hello, I am James Kyle, a student with passion in programming
چگونه «this.firstName» و «this.lastName» به ترتیب به جیمز و کایل تبدیل شدند؟
برای دریافت پاسخ به تعریف این کلمه کلیدی اشاره می کنیم. قبلاً گفته شد که منظور از شیئی است که در آن تعلق دارد. بنابراین از مثال بالا، این به شی studentDetails اشاره دارد که متد salute() را در اختیار دارد. عملگر نقطه (.) برای دسترسی به اعضای یک شی که توسط این کلمه کلیدی تعریف شده است استفاده می شود. عملگر نقطه (.) در console.log () برای دسترسی/ فراخوانی روش سلام استفاده می شود. توجه داشته باشید که میتوانید از عملگر dot(.) برای دسترسی به روش ویژگیهای شی سلام مانند سن و جنسیت استفاده کنید.
موقعیت هایی که در آن می توان از کلمه کلیدی “this” استفاده کرد
بسته به نحوه فراخوانی این کلمه کلیدی در هنگام اجرا، می تواند به موارد زیادی اشاره کند. این باعث می شود که تعریف این به عنوان ویژگی یک زمینه اجرایی دقیق باشد. بیایید بیشتر حفاری کنیم.
.این در روش یک شی
برای شروع، از یک متد برای نشان دادن تابعی استفاده می شود که عضوی از یک شی است. همه متدها به عنوان توابع عمل می کنند، اما هر تابعی نمی تواند یک متد باشد. بنابراین، هنگامی که این کلمه کلیدی در یک متد استفاده می شود، به دارنده روشی که در آن استفاده می شود اشاره دارد. به عنوان مثال؛
salute : function() {
return “Hello, I am " + this.firstName +" " + this.lastName +", a student with passion in programming"
}
در مثال بالا، این مورد استفاده شده در متد salute() به شی StudentDetail اشاره دارد که متد salute() را در اختیار دارد.
این در زمینه جهانی)
هنگامی که به تنهایی استفاده می شود، نه در داخل هیچ تابع، و از این رو به عنوان در زمینه جهانی تعریف می شود، این کلمه کلیدی به شی جهانی اشاره دارد. شی سراسری به کسی اشاره دارد که این کلمه کلیدی را در این زمینه دارد.
.این در یک تابع
توجه داشته باشید که ما به این کلمه کلیدی زمانی اشاره می کنیم که در یک تابع استفاده می شود و به هیچ شیئی وابسته نیست. در اینجا، عملکرد مستقل است. در چنین شی جاوا اسکریپت، مقدار پیشفرض این، دارنده تابع است. اگر کد روی حالت سخت تنظیم نشده باشد و روی عضوی از یک شی تنظیم نشده باشد، «this: به طور پیشفرض روی شی سراسری تنظیم میشود.
function myFunction() {
return this;
}
myFunction() === window
از تصویر، این مقدار کلمه کلیدی همانطور که در myFunction استفاده می شود به شی پنجره اشاره دارد. به همین دلیل است که نتیجه مقایسه رشتهای بین myFunction و شی پنجره درست خروجی میشود، زیرا مقدار آنها یکسان است.
این در یک تابع (حالت دقیق)
هنگامی که در حالت سخت استفاده می شود، جاوا اسکریپت اجازه اتصال پیش فرض را نمی دهد و این باعث می شود که تعریف نشده باشد. حالت سخت، کدهای نامرتب را در برنامه نویسی مسدود می کند. دلیل مشخصی وجود ندارد که بخواهیم به مقدار این در یک تابع دسترسی داشته باشیم زیرا شی پنجره را خروجی می دهد. برنامه نویسان عمدتاً به این کلمه کلیدی دسترسی دارند زیرا می خواهند برخی از ویژگی ها را از مالک دریافت کنند. بنابراین حالت سخت این را اعمال می کند که این کلمه کلیدی را تعریف نشده می کند.
"use strict"
function myFunction1() {
return this
}
myFunction1 () === window
همانطور که در مثال بالا مشاهده می شود، در حالت سخت، مقدار این در داخل یک تابع تعریف نشده است.
از مثال بالا، در حالت سخت، مقدار این در داخل یک تابع تعریف نشده است.