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

Uncaught illegal access while adding element in array

这里是 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 错误的行上发表了评论。我找不到它的根本原因。

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