这是 javascript 函数:

注意: resultArray 在调用函数中定义为 var resultArray = [];

onAddElement :  function (win,id,resultArray) { 
    var controller = this; 
    if(!win.flag){ 
        Ext.MessageBox.show({ 
           title: 'Yes or No', 
           icon: Ext.MessageBox.QUESTION, 
           msg: 'Do you want to continue?', 
           buttonText: {yes:'YES', no:'NO', cancel:'CANCEL', 
           fn: function (me) { 
               if(me === 'yes'){ 
                   ver = win.curVer; 
                   resultArray.push({ 
                        id: id, 
                        ver: ver 
                    }); 
                   controller.anotherFunc(win,id);   
 
               }else if(me === 'no'){ 
                   ver = win.ver; 
                   resultArray.push({ 
                        id: id, 
                        ver: ver 
                    }); 
                   controller.anotherFunc(win,id);   
 
               } 
            } 
       }); 
    }else{ 
         ver = win.ver; 
         resultArray.push({   //getting uncaught illegal access 
            id: id, 
            ver: ver 
        }); 
         controller.anotherFunc(win,id);     
    } 
} 

我已经在出现未捕获的非法访问错误的行上发表了评论。我无法找到其根本原因。

请您参考如下方法:

我找到了解决方案。只需将 resultArray 定义到函数中,如果需要,可以将参数数组中的值分配给定义到函数中的数组。

修改如下:

onAddElement :  function (win,id,argArray) { 
    var resultArray = []; // define array inside a function 
    resultArray = argArray; // if required assign arg array to local array. 
    var controller = this; 
    . 
    . 
    . 
    . 
} 


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!