Javascript未定义的错误和变量范围

时间:2017-05-26 17:17:53

标签: javascript variables scope

我有点累了,我不知道为什么我在变量cat.data [0]上得到未定义的错误.id

var app = {
    initialize: function() {
        this.bindEvents();
    },
    bindEvents: function() {
      function Trial() {
          var index = 0;
          var cat = [];

          function getcat() {
                  .
                  .Makes a call to get JSON set of data in the form
                  .{"status" : "success", "data" : [{"id":"8", "url":"http:\/\/google.com", "description":"Search Engine"}]}
                  .
                  request.success(function (data) {
                    cat = $.parseJSON(data);
                    if (cat.status === "error") {
                        alert(cat.message);
                    }
                    console.log(cat.data[index].id);
                    alert(cat.data[0].id);
                  });
                  request.error(function (data, status) {
                    alert("Error connecting to API:" + status);
                  });
              }
          }

          function tests() {
            getcat();
            console.log(cat.data[index].id);
          }

因此,当我们调用测试函数时,它会将数据拉出并放入数组中,并且console.log和alert的条目完全按照它们的方式执行并显示id字段值。但是,当它返回测试并执行console.log条目时,它将失败并显示:

  

"无法获得财产' 0'未定义或空引用"

它是主功能中的全局变量,为什么它无法访问它?

0 个答案:

没有答案