Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript OOP中使用回调函数后如何设置实例变量_Javascript_Ajax_Oop - Fatal编程技术网

javascript OOP中使用回调函数后如何设置实例变量

javascript OOP中使用回调函数后如何设置实例变量,javascript,ajax,oop,Javascript,Ajax,Oop,我想代码应该是这样的: Item.js var item = { id = 0, itemname = "name", callAjax : function(){ var ajaxdata = {itemname:this.itemname} MM.callajax("apiname",ajaxdata,function(data){ //this is callback function after ajax is

我想代码应该是这样的:

Item.js

var item = {
    id = 0,
    itemname = "name",

    callAjax : function(){
        var ajaxdata = {itemname:this.itemname}
        MM.callajax("apiname",ajaxdata,function(data){
          //this is callback function after ajax is done
          id = data;    // suppose data = 2
        });
    },

}
MMCallajax.js

var MM = {
   callajax: function (apiname, data, callback) {

    var apiurl = this.apiBaseUrl + "/" + apiname;
    jQuery.ajax( 
               apiurl, 
               {'type': 'POST', 
                'dataType': 'json', 
                'data': data, 
                'xhrFields': { withCredentials: true }
               })
    .done(this.apiCbDone(callback))
   },

   apiCbDone : function (callback) {...},
}
我想在使用回调函数后更新item object equal数据变量中的id变量

如何解决这个问题

为什么不这样

var item = { id: 0 };
MM.callajax("apiname",ajaxdata,function(data){
    //this is callback function after ajax is done
    item.id = data;    // suppose data = 2
});

你在问什么?什么是MM?什么叫阿贾克斯?这和OOP有什么关系?首先,你的代码有错误的语法OK,我再次编辑我的代码。MM是关于调用ajax的课程。我不想让你知道MM班。因为这是很长的代码。但我想让你在打完电话后知道。它将返回数据=2;忽略代码中的语法错误,您尝试执行的操作是不可能的,原因有三:1。回调函数是异步执行的,稍后代码中将不会分配id,2。id不是一个变量,您不能给它赋值,尽管javascript是善良的,如果您不使用strict和3,它将接受这一点。即使id是一个变量,我也不认为它是在双嵌套函数的上下文中…@reverse\u engineer我认为这是一个很好的答案。你的理由让我改变了密码。但是现在,我解决了这个问题。非常感谢。