關於javascript全域變數的問題,如下,一個頁面,兩段script,第二段中到了全域變數map, 開始時在第二段一直說找不到map.
<script type="text/javascript">
$(document).ready(function () {
var map =new BMap.Map("container"); // 建立地圖執行個體
var point =new BMap.Point(116.404, 39.915); // 建立點座標
map.centerAndZoom("北京"); // 初始化地圖,設定中心點座標和地圖層級
</script>
<script type="text/javascript">
$(document).ready(function () {
var point =new BMap.Point(@item.Lon, @item.Lat);
var mark =new BMap.Marker(point), px = map.pointToPixel(point);
map.addOverlay(mark);
});
</script>
在網上找到如下文章, "要使變數為全域,不能用var去聲明,直接用變數去使用就行."
http://topic.csdn.net/u/20071107/21/551cecc8-cc30-4973-8655-a8731c7f3e54.html
我讀了《js局部變數/全域變數》一文,地址如下
http://www.cnblogs.com/simhare/archive/2007/08/25/869440.html
文
中說“在js中如果用var來定義一個變數,如果該變數被定義在function或者其他迴圈體內,則變數為局部變數,並且該變數不會受到同名全域變數的
影響,也不會影響同名的全域變數。如果不用var來定義變數而直接拿一個變數來使用則該變數會被自己定義為全域變數,無論該變數被定義在任何位置,如果在function或者迴圈體內用這種方式來定義變數,則該變數為全域變數若function或迴圈體外已經定義了同名的全域變數,則會直接引用function或迴圈體外定義的全域變數。