Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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全局变量未进入函数内部_Javascript_Json - Fatal编程技术网

Javascript全局变量未进入函数内部

Javascript全局变量未进入函数内部,javascript,json,Javascript,Json,我的页面中有以下javascript代码 var data = {items: []}; var item_flag=false; var check_flag=false; var count = 0; function add(){ if(check_flag){ //block A }else{ data.items.push( {item: item, quantity: quantity, price: price}

我的页面中有以下javascript代码

var data = {items: []};
var item_flag=false;
var check_flag=false;
var count = 0;
function add(){
    if(check_flag){
        //block A
    }else{
        data.items.push(
           {item: item, quantity: quantity, price: price}
        );
    }
}
在这里,我将变量数据声明为全局变量。在函数add()中,我试图在else条件下将值推送到全局变量数据。 但我得到一个错误,类型错误:数据未定义 在if条件内,变量数据是可访问的

请帮我找到解决办法 谢谢。

试试这个

function data() { this.items = []; }  

function items(item, quantity, price){   
   this.item= item;     
   this.quantity= quantity;    
   this.price= price;   
}

var Datas = new data();   //Global variable
function add(item, quantity, price){
    if(check_flag){
         //block A
    } else {
         Datas.items[Datas.items.length] = new items(item, quantity, price);
    }
}

我怀疑您正在从变量声明之前定义的函数调用
add()
。请告诉我们您在哪里调用
add()
。并且您的check\u标志为false,因此它不应该到达那里。你尝试添加的所有变量都找不到。如果没有其余的代码,很难计算出发生了什么。如果我们知道在哪里调用
add()
,我们可能有更多的机会修复它。此外,上述代码中的
项目
数量
价格
也将是
未定义的
。请解释,代码的哪一部分不起作用?