在数组中添加元素时未捕获非法访问

时间:2016-08-29 10:13:15

标签: javascript extjs4.2

以下是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);    
    }
}

我已经对我收到uncaught illegal access错误的行进行了评论。我无法找到它的根本原因。

1 个答案:

答案 0 :(得分:1)

我得到了一个解决方案。只需要将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;
    .
    .
    .
    .
}