2012-09-03 51 views
0

我正在使用jQuery,並且我有兩個不同的js文件。

file_1.js

$(document).ready(function(){ 
    var A = 'varA'; 
}); 

file_2.js

$(document).ready(function(){ 
    console.log(A); // will get an A is undefined because of this closure thing 
}); 

有沒有辦法從一個文件從另一個文件訪問一個變量? 我需要所有的代碼在$(document).ready(...)

一個解決方案,我用於使變量全局(不使用var A) 有什麼更好的?

+1

剛纔有人問現在一個命名空間。 http://stackoverflow.com/questions/12248366/case-when-document-ready-obstruct/12248422#12248400 – xdazz

+0

任何全局變量在技術上都是window對象的屬性。同樣,如果您真的需要,您可以在任何適當的DOM對象的'.data()'中存儲變量。 – Blazemonger

+0

你也可以使用'document'命名空間並在ready函數中執行'this.A',就像[THIS](http://jsfiddle.net/WpyUf/9/)... – adeneo

回答

0

變量A在函數中定義,其生命週期僅限於函數的執行。你需要使其成爲全球性的,這就是全球變量首先存在的原因。

4

創建您自己的命名空間:

var my = {}; 

... 

$(document).ready(function(){ 
    my.A = 'A'; 
} 

... 

$(documet).ready(function() { 
    console.log(my.A); 
} 

這樣,你只能有一個全局變量充當您所有的「全局」對象/功能

相關問題