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赋值就会有)
}
var temp=0;//全局变量声明赋值
totla=10;//隐式声明变量,javascript把隐式声明的变量总是当成全局变量来使用的
function add(){
var num=2;//局部变量
temp=num;//局部变量赋值给全局变量
totla=num+2;//局部变量+2赋值给全局变量
}
//调用方法
add();
var a=0;//全局变量
function Fn(){
var b=2
a=b; //局部变量传到全局
}
Fn();
alter(a); //2
闭包
function fun()
{
var a=1;
return function(){
return a;
}
}
var result=fun()(); //result=a;
全局变量在函数外部声明,不要在函数内部声明。