Ключевое слово This в Javascript


В javascript это слово означает непосредственный родительский контекст.

  • Но когда вы используете это ключевое слово в функции arrow, то оно не означает непосредственный родительский контекст. Оно означает контекст самого себя.

*Просто посмотрите два кода и подумайте, в чем разница между ними.

var title = " awesome.";
var statement = {
    name: ' MERN ',
    lang: 'Javascript',
    getDetails: function () {
        name = "normal function";
        return "lets see " + this.name+  " " + name + title;
    },
    getDetails2: () => {
        name = " arrow function";
        return "let us see " + this.name + " " + name + title;
    }

};
Вход в полноэкранный режим Выйти из полноэкранного режима

Запустите функцию getDetails: console.log(statement.getDetails())
вывод:

lets see  MERN  normal function awesome.
Вход в полноэкранный режим Выход из полноэкранного режима

снова запустить функцию getDetails2 : console.log(statement.getDetails2())
вывод:

let us see  arrow function  arrow function awesome.
Вход в полноэкранный режим Выход из полноэкранного режима

здесь вывод: arrow function arrow function дважды. таким образом, мы понимаем, что наше ключевое слово this.name не означает родительское имя: ‘ MERN ‘.


Advance

var title = " awesome.";
var statement = {
    name: ' MERN ',
    lang: 'Javascript',
    getDetails: function () {
        name = "normal function";
        return "lets see " + this.name+  " " + name + title;
    },
    getDetails2: () => {
        name = " React";
        return {
            name: "Node",
            getDetails3: function() {
                 return "lets see " + this.name+  " " + name + title;
            } 
        };
    }

};
Войти в полноэкранный режим Выход из полноэкранного режима

снова запустите функцию getDetails3() : statement.getDetails2().getDetails3()
выход:

lets see Node  React awesome.
Вход в полноэкранный режим Выход из полноэкранного режима

Advance2


Войти в полноэкранный режим Выход из полноэкранного режима

снова запустите функцию getDetails3() : statement.getDetails2().getDetails3()
выход:


Вход в полноэкранный режим Выход из полноэкранного режима

Оцените статью
devanswers.ru
Добавить комментарий