کلیدواژه this در JavaScript

کلیدواژه this
var person = {
    firstName: "John",
    lastName : "Doe",
    id       : 5566,
    fullName : function() {
        return this.firstName + " " + this.lastName;
    }
};
مشاهده مثال

"this" چیست؟

در تعریف تابع، this به خود تابع اشاره دارد

در مثال بالا، this به شخص شی اشاره دارد

شخص شیء "دارای" روش fullName است.

اتصال پیش فرض

هنگامی که به تنهایی استفاده می شود، this به شیء سراسری اشاره دارد.

در مرورگر، شیء سراسری [object Window] است:

اتصال پیش فرض
 var x = this; 
مشاهده مثال

هنگامی که در یک تابع استفاده می شود، this به شیء سراسری اشاره می کند.

شری سراسری
function myFunction() {
    return this;
}
مشاهده مثال

در حالت strict ، این مشخص نخواهد شد، زیرا حالت strict  به اتصال پیش فرض اجازه نمی دهد:

strict
"use strict";
function myFunction() {
    return this;
}
مشاهده مثال

روش اتصال شیء

در این مثالها، this شیء شخص است (شیء شخص "مالک" تابع است):

روش اتصال شیء
var person = {
    firstName  : "John",
    lastName   : "Doe",
    id         : 5566,
    myFunction : function() {
        return this;
    }
};
مشاهده مثال

روش اتصال شیء
var person = {
    firstName: "John",
    lastName : "Doe",
    id       : 5566,
    fullName : function() {
        return this.firstName + " " + this.lastName;
    }
};
مشاهده مثال

به عبارت دیگر: this.firstName به معنای ,ویژگی firstName  برای اولین بار از this (شخص) object است.

وابستگی صریح تابع

روش ()call و ()apply متد های از پیش تعریف شده جاوااسکریپت هستند.

آنها هر دو می توانند برای فراخوانی یک شیء با یک شی دیگر به عنوان آرگومان مورد استفاده قرار گیرند.

در این مثال، هنگام فراخوانی person1.fullName با person2 به عنوان آرگومان، this به person2 اشاره می کند، حتی اگر یک روش از person1 باشد:

وابستگی صریح تابع
 var person1 = {
    fullName: function() {
        return this.firstName + " " + this.lastName;
    }
}
var person2 = {
    firstName:"John",
    lastName: "Doe",
}
person1.fullName.call(person2);  // Will return "John Doe" 
مشاهده مثال

 

نظر شما

لطفا نام و نام خانوادگی خود را وارد کنید
لطفا ایمیل خود را وارد کنید لطفا ایمیل صحیح وارد کنید.
لطفا متن نظر خود را وارد کنید
>

یادگیری JavaScript

مقالات و دروس

به خبرنامه مدرسه طراحی وب ایران (وب مهراز) بپیوندید.

لطفا شماره همراه صحیح وارد کنید.
لطفا ایمیل صحیح وارد کنید.

مقالات مرتبط