У меня есть этот простой код Javascript, чтобы написать несколько модулей, но я не знаю, почему я получаю неопределенные результаты, даже когда я звоню функции внутри:Почему это Javascript класс возвращает неопределенное значение
window.onload = function() {
function testFunction() {
this.hours = null;
function getHours() {
return this.hours;
}
alert(getHours());
return {
getHours: function() {
return getHours();
}
}
}
var test = new testFunction();
alert(test.getHours());
}
I думаю, что у меня проблема в понимании ключевого слова THIS
в javascript и использования его внутри javascript-конструкторов.
спасибо.
«Это» внутри вашей функции «getHours» не является тем же самым «этим» вне его. –
@VsevolodGoloviznin Что по-другому? Я хочу понять ЭТО НАСТОЯЩИМ! Спасибо за ваш комментарий. – Mohammad
@Mohammad это очень просто - если вы вызываете 'obj.myFunc()' then' this === obj'. Но если вы просто назовете 'myFunc()' then 'this === window' (или' null' в строгом режиме ES5!) – Alnitak