this - это глобальный объект в вызове функции.
Глобальный объект определяется средой выполнения функции. В браузере глобальным объектом является объект window.
При вызове функции контекст выполнения - это глобальный объект:
// window - глобальный объект
function hello(){
// this - это window
};
hello();
Давайте проверим контекст в следующей функции:
function sum(a, b) {
console.log(this === window); // => true
this.myNumber = 20; // добавим свойство 'myNumber' к глобальному объекту
return a + b;
}
// sum() вызовет функцию
// this в sum() является глобальным объектом (window)
sum(15, 16); // => 31
window.myNumber; // => 20
Когда вызывается sum(15, 16), JavaScript автоматически устанавливает this в качестве глобального объекта (window в браузере).
Когда this используется вне области видимости функции, она также равна глобальному объекту:
console.log(this === window); // => true
this.myString = 'Привет, Мир!';
console.log(window.myString); // => 'Привет, Мир!'
В html-файле:
<script type="text/javascript">
console.log(this === window); // => true
</script>