Javascript全局变量未进入函数内部
我的页面中有以下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}
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()
,我们可能有更多的机会修复它。此外,上述代码中的项目
、数量
和价格
也将是未定义的
。请解释,代码的哪一部分不起作用?