首页 > 如果函数返回一个对象,怎么取这个对象的属性值?

如果函数返回一个对象,怎么取这个对象的属性值?

 loggedIn() {
    //return !!localStorage.token
    var result = {status:false,message:null};
    $.ajax({
        url:'/api/get_login_info',
        type:'get',
        async:false,
        success:function(data){
          console.log(data,'1');
          result.status=data.is_success;
      result.message=data.message;
        }
    });
    return result;
  },
  
  比如上面这段代码写成模块AUTH,
  如果引用的话,怎么取到里面的result.status的值呢?
  这样?AUTH.loggedIn().result.status?

我怎么感觉这个需要采用回调函数的形式呢?题主的方法能行的通吗?


嗯 AUTH.loggedIn().result.status这样也是可以的,但是建议还是使用@guanpunba的方式。再给下建议,return result放到success方法里面去会比较好,否则若你的请求是异步的话,result将返回空


var obj = loggedIn();
 console.log(obj.status);

同步 Ajax 会阻塞啊,各位亲们

最好是改为异步,传入回调

 loggedIn(callback) {
    //return !!localStorage.token
    var result = {status:false,message:null};
    $.ajax({
        url:'/api/get_login_info',
        type:'get',
        success:function(data){
          console.log(data,'1');
          result.status=data.is_success;
          result.message=data.message;
          callback(result)
        }
    });
  },

调用:

AUTH.loggedIn(function(result){
    console.log(result)
})
【热门文章】
【热门文章】