[英]how to declare a global variable assign value in one function and use in another function in javascript
[英]Is it possible to declare a variable in one javascript file and use it in another one?
如果我有一個javascript 文件 :
var myVariable = "Awesome variable";
和另一個javascript 文件 :
function printMyVariable() {
document.writeln(myVariable);
}
printMyVariable
方法能夠識別myVariable嗎? 我的猜測是“否”,因為myVariable
范圍在第二個javascript文件中無法識別。 所以,我想知道是否有人可以向我解釋如果可能的話,需要做些什么來使魔術發生。 :)
謝謝。
是的,只要具有變量聲明的文件包含在使用它的文件之前,因為它在同一個塊中按順序解析。
但這是一種非常糟糕的做法。
這是可能的,因為myVariable將被定義為@ global scope,盡管它位於不同的文件中。 但是,確保在定義變量后調用printMyVariable函數(就包含腳本標記而言)。
JS具有平坦的范圍,僅有全局1和本地。 var
使用當前范圍。 讓var foo
在全局范圍內 - 您將從任何文件(沒有名稱空間或模塊)獲得全局變量。
有一個Global
對象,全局var成為它的屬性。 在瀏覽器環境window
實現Global
,因此您的全局var將具有限定名稱window.foo
。
/*
assuming browser environment
execution flow: top to bottom
first file: (actually doesnt matter, becase its flat)
*/
var foo = "bar";
// equivalent to
window.foo = "bar";
// second file:
var foo = 42;
// redeclared? no, because equivalent statement is
window.foo = 42;
只有1個說明的目的,請參閱第二部分。
只要在包含第一個文件后在第二個文件中調用該函數,就應該沒問題。 您引入了一個全局變量,該變量分配給DOM中的window
對象,因此在包含第一個文件后, window.myVariable
將等於"Awesome variable"
。 如上所述,所有這些都是一個非常糟糕的主意。
作為一個古老的perlie,我永遠不會使用以'my'開頭的變量作為全局變量 - 我的= perl in local :-)我同意這是不好的做法。
想到這個的方式不是單獨的文件,而是作為JavaScript文件的一個大文件按順序連接。 范圍與該文件中的范圍相同。 實際上,這正是當你縮小時發生的事情......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.