在函数内部更新时变量未定义

时间:2014-11-15 16:13:06

标签: javascript jquery firebase

我在我的职能之外宣布user_properties。然后我从firebase获取数据并尝试将其存储在user_properties中,但最终未定义。

有谁知道我在这里做错了什么?

var user_properties;

get_user_properties = new Firebase("https://<MY-URL>/users/"+auth.uid+"/properties");
get_user_properties.once('value', function (dataSnapshot) {
  user_properties = dataSnapshot.val();
});

//undefined
console.log(user_properties);

1 个答案:

答案 0 :(得分:0)

我为您提供了一个简单的例子。

var foo,
    obj = new Bar("some text");

obj.set("cute cat", function(cat){
    foo = "my lovely cat";
});

console.log(foo); // undefined
obj.doo();
console.log(foo); // "my lovely cat"

使用此构造函数

function Bar(c){
    this.mcat = c;
    this.callback;

    /* this method only saves that callback function */
    this.set = function(catname, callback){
        this.mcat = catname;
        this.callback = callback;
    }

    /* this method calls that callback function */
    this.doo = function(){
        this.callback();
    }
}