Javascript ajax回调和变量初始化

时间:2013-04-17 14:26:28

标签: javascript

以下代码来自一个显示分页表的简单页面。

var exviewmodel = function() {
    var self = this;
    self.getList = function(pagenum) {
        $.getJSON("/api/v1/getList", { page: pagenum }, function(data) {
           self.paginator.count(data.count);
        });
    };
    self.paginator = new Paginator(self.getList);
};

我检查并验证代码是否正常工作,并且在ajax成功的paginator中正确更新了计数。

我发现这很奇怪,因为只有在定义了ajax回调之后才初始化paginator对象。

当JS解释器看到像getList这样的函数定义时,它究竟做了什么,它引用了尚未在异步回调中初始化的属性?

1 个答案:

答案 0 :(得分:1)

  

当JS解释器看到像getList这样的函数定义时,它究竟做了什么,它引用了尚未在异步回调中初始化的属性?

好的。 “这是一个功能,好的”。

只有在调用函数时,才会尝试访问它的变量。