Уже был набор больших ответов, но для абсолютного новичка, я искренне рекомендовал бы Взлом Hackety . Это было создано необоснованно плодовитый why_the_lucky_stiff конкретно для обеспечения среды BASIC/LOGO/Pascal-like для новых программистов для экспериментирования в. Это - по существу гладкий IDE Ruby с некоторыми большими библиотеками (флеш-видео, IM, веб-сервер) и интерактивные уроки. Это делает хорошую подачу для программирования, поскольку это выбрало уроки, которые делают забаву, полезные вещи. "Привет, мир" не может произвести впечатление сразу, но создание пользовательского клиента IM через 20 минут может вдохновить кого-то продолжать учиться.развлекайтесь!
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.
В функции, вызываемой напрямую без явный объект-владелец, вызывает значение это по умолчанию объект (окно в браузере).
В функции, вызываемой с помощью метода синтаксис вызова, например
objname.myFunction ()
илиobjname ['myFunction'] ()
, вызывает значение этого должно быть objname.
См. дополнительные вызывающие функции в JavaScript
Ключевое слово this
всегда относится к владельцу вызываемой функции. Вы можете прочитать ясное и подробное объяснение этого здесь .
Из статьи, на которую я ссылался выше, это изображение, я думаю, объясняет его наиболее ясно: