Объем окна консоли Firebug. Почему “это” - не всегда то же?

Уже был набор больших ответов, но для абсолютного новичка, я искренне рекомендовал бы Взлом Hackety . Это было создано необоснованно плодовитый why_the_lucky_stiff конкретно для обеспечения среды BASIC/LOGO/Pascal-like для новых программистов для экспериментирования в. Это - по существу гладкий IDE Ruby с некоторыми большими библиотеками (флеш-видео, IM, веб-сервер) и интерактивные уроки. Это делает хорошую подачу для программирования, поскольку это выбрало уроки, которые делают забаву, полезные вещи. "Привет, мир" не может произвести впечатление сразу, но создание пользовательского клиента IM через 20 минут может вдохновить кого-то продолжать учиться.развлекайтесь!

6
задан André Pena 26 November 2009 в 13:26
поделиться

3 ответа

The value of this in the console will be the same as the value of this in the code currently being executed. Consider:-

function outer()
{
        // this is window

    var x = {n:12};

    var fn = function()
    {
               // this is object {n:12}

        alert(this.n);
    }

    fn.call(x);
}

...

<img src="thing.gif" onclick="outer()" />

If you put a break point on the x = {n:12} line, switch to console you will find the this is the window. However when you step to the alert line this in the console is the object held by the x variable. IOW there is no distinction between this in the executing context and the console. Its for this reason that you can use the console to tweak values of variables and properties while debugging.

3
ответ дан 17 December 2019 в 00:10
поделиться

В функции, вызываемой напрямую без явный объект-владелец, вызывает значение это по умолчанию объект (окно в браузере).

В функции, вызываемой с помощью метода синтаксис вызова, например objname.myFunction () или objname ['myFunction'] () , вызывает значение этого должно быть objname.

См. дополнительные вызывающие функции в JavaScript

JavaScript, 5 способов вызова функции

2
ответ дан 17 December 2019 в 00:10
поделиться

Ключевое слово this всегда относится к владельцу вызываемой функции. Вы можете прочитать ясное и подробное объяснение этого здесь .

Из статьи, на которую я ссылался выше, это изображение, я думаю, объясняет его наиболее ясно:

alt text

2
ответ дан 17 December 2019 в 00:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: