Вы можете использовать замыкания, это должно сработать:
function User() {
var that = this;
this.status = 1;
this.loginName = "";
this.onLoginSubmit = function (event)
{
// the variable "that" is available and references the User instance
}
}
var user = new User();
Здесь мы используем User в качестве конструктора, поэтому это указывает на объект, создаваемый с помощью «new».Что происходит (примерно), так это то, что переменная «this» является локальной для функции User, но поскольку функция ссылается на нее, она остается в памяти и доступна для этой функции.Затем вы можете использовать «то» вместо «это» в качестве «поддельной» области действия.
Это не то, что вы хотели бы использовать, если у вас много экземпляров User, потому что функциисоздан для каждого экземпляра.«Обычный» способ - использовать анонимную функцию, как в ответе Логана.
Большинство (если не все) фреймворки имеют элегантные способы для обработки этого, но в основном вам нужно либо иметь доступную область видимости в самой функции через замыкание, либо знать ее при вызове функции, чтобы вы могли это сделатьс правильной областью действия (написав user.onLoginSubmit ())
Надеюсь, что это вроде как ясно:)
edit: о, хорошо, кто-то опубликовал то же самое в сообщении, которое вы связали.Что ж, теперь вы настроили его на пользователя!