Передав функцию test.init
непосредственно в функцию ready()
, вы регистрируете test.init
в качестве функции обратного вызова. jQuery (который, судя по вашему синтаксису, который вы используете) будет использовать заданную функцию обратного вызова и применить ее в контексте document
. Это означает, что ключевое слово this
будет ссылаться на document
.
Что вы должны сделать, чтобы избежать этого, как предлагается, это использовать анонимную функцию (замыкание), которая будет вызывать функцию, на которую вы ссылаетесь:
$(document).ready(function() {
test.init();
});
Использование синтаксиса function() { }
для определения замыканий, которые должны быть установлены в качестве функций обратного вызова, является распространенным шаблоном в Javascript.