javascript中局部变量如何传给全局变量?

2025-02-25 04:34:54
推荐回答(5个)
回答1:

function select(str,place){
    var point = new BMap.Point(116.331398,39.897445);
    var apoint ;                            //全局变量!!!
    var myGeo = new BMap.Geocoder();

    myGeo.getPoint(place, function(point){ 
        if (point) { 
            map.centerAndZoom(point, 10);
            map.addOverlay(new BMap.Marker(point));
        }

        apoint = point;    //赋值给全局变量!!!
        
        //在这里才能获得point的值,应该将对point的操作放到这里.
        //如果要将point赋值给其它变量,应该赋值后再通知其它函数.
        
    }, "北京市");

    // getPoint的执行可能不会立即完成,所以此时还没有执行apoint = point;这一句,所以apoint也没有被赋值,所以到这里apoint不一定有值
alert(apoint.lng + ", " +apoint.lat);      //输出全局变量!!
        //apoint的两个值在这里输出为空~!(如果在全局变量处给apoint赋值就会有)
}

回答2:

var temp=0;//全局变量声明赋值
totla=10;//隐式声明变量,javascript把隐式声明的变量总是当成全局变量来使用的

function add(){
    var num=2;//局部变量
    temp=num;//局部变量赋值给全局变量
    totla=num+2;//局部变量+2赋值给全局变量
}

//调用方法
add();

回答3:

var a=0;//全局变量

function Fn(){
var b=2

a=b; //局部变量传到全局

}
Fn();

alter(a); //2

回答4:

闭包

function fun()
{
   var a=1;
   return function(){ 
        return a;   
       }    
}
var result=fun()(); //result=a;

回答5:

全局变量在函数外部声明,不要在函数内部声明。