У меня есть этот код ниже.Функции, функции и анонимные функции
var user = new user();
function user() {
// returns true if the account is password protected
function isPasswordProtected(data, callback) {
//check if the account is a password protected account, and if so request the password.
$.post('user_functions/ifpasswordprot.php', {uid: data['uid']}, function(data) { return callback(data);});
}
// function that returns 1 if the user is password protected
this.getPPStatus = function() { return isPasswordProtected({uid: this.userid}, function(data) { return data; }); };
}
Это предназначено для создания магазина пользовательского объекта, на который можно ссылаться из другого места на сайте. Для этого есть нечто большее, чем это, но это код, имеющий значение здесь.
С другой страницы Я пытаюсь выяснить, если пользователь, который вошел в защищал свой счет с помощью пароля, так как при этом:
alert(user.getPPStatus());
Однако это всегда выходит как undefined
.
Я не эксперт по объектам в JavaScript, ни от пользователя анонимных функций. Может кто-нибудь объяснить, почему это не сработает? Кажется, что на каждом обороте достаточно возвратов, чтобы все было в порядке.
РЕШЕНИЕ
Это проблема асинхронной, так:
var user = new user();
function user() {
// returns true if the account is password protected
function isPasswordProtected(data, callback) {
//check if the account is a password protected account, and if so request the password.
$.post('function/get-ifpasswordprotected.php', {uid: data['uid']}, function(data) { callback(data);});
}
// function that returns 1 if the user is password protected
this.getPPStatus = function(**callback**) { isPasswordProtected({uid: this.userid}, **callback**); };
}
, а затем
user.getPPStatus(function(result) {
**DO STUFF HERE**
});
абсолютно понятия не имею, если это хорошо Javascript или нет, но эй, это работает ... :)
Название вопроса звучит как название книги/фильма! – undefined
@Vohuman - да, я видел это, Джеймс Спейдер был отличным в нем –