Я изучаю Javascript, и сейчас я смотрю лекцию об этом. Один из примеров такой лекции;Почему this.bar возвращает другой результат в webstorm?
function foo(){
console.log(this.bar);
}
var bar = "bar1";
var o2 = { bar: "bar2", foo: foo};
var o3 = { bar: "bar3", foo: foo};
foo(); // bar1
o2.foo(); // bar2
o3.foo(); // bar3
Это работа, которая предусмотрена в комментариях при попытке запуска на консоли Google Chrome. Но я работаю над Webstorm, и я понял foo(); возврат не определено. Вероятно, это foo(); не вызывается из глобального, но почему это работает на Webstorm так. ECMAscript 5.1, и я изменился и попробовал разные версии, но результат был таким же. Спасибо за любую помощь.
Результат консоли Webstorm;
undefined
bar2
bar3
В первом случае в браузере это относится к окну и как 'var bar' определено в глобальном контексте, оно принадлежит' window', это может быть не так в вашей среде IDE. – Rayon
'foo' никогда не возвращает ничего, кроме 'undefined'. Нет инструкции 'return'. Вы имели в виду, что Chrome печатает на консоли, а Webstorm - нет? – zvone
@zvone Нет, это не относится к консоли. Я узнал из ответа, что у файлов node.js есть собственные модули, поэтому var bar = .. и т. Д. Относится к области локального модуля. Вот почему я принимаю разные результаты. – alpersilistre