亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在.js文件中聲明全局變量

如何在.js文件中聲明全局變量

一只斗牛犬 2019-11-30 10:10:31
我需要所有.js文件中都需要的一些全局變量。例如,考慮以下4個文件:global.jsjs1.jsjs2.jsjs3.js考慮到我將上述所有4個文件都加載到HTML文檔中,有沒有一種方法可以在其中聲明3個全局變量global.js并在其他3個.js文件中的任何一個中訪問它們?有人可以告訴我這是否可行嗎,或者有解決的辦法嗎?
查看完整描述

3 回答

?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

只需在函數范圍之外的global.js中定義變量:


// global.js

var global1 = "I'm a global!";

var global2 = "So am I!";


// other js-file

function testGlobal () {

    alert(global1);

}

為確保此方法有效,您必須先包含/鏈接到global.js,然后再嘗試訪問該文件中定義的任何變量:


<html>

    <head>

        <!-- Include global.js first -->

        <script src="/YOUR_PATH/global.js" type="text/javascript"></script>

        <!-- Now we can reference variables, objects, functions etc. 

             defined in global.js -->

        <script src="/YOUR_PATH/otherJsFile.js" type="text/javascript"></script>

    </head>

    [...]

</html>

當然,如果您不想讓js文件的加載中斷初始頁面加載,則可以在結束<body> -tag之前的腳本標簽中進行鏈接。


查看完整回答
反對 回復 2019-11-30
?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

推薦的方法是:


window.greeting = "Hello World!"

然后,您可以在任何函數中訪問它:


function foo() {


   alert(greeting); // Hello World!

   alert(window["greeting"]); // Hello World!

   alert(window.greeting); // Hello World! (recommended)


}

首選此方法有兩個原因。


目的是明確的。var關鍵字的使用很容易導致聲明全局變量vars,而全局變量原本是本地變量,反之亦然。對于許多Javascript開發人員來說,這種變量作用域是一個混淆點。因此,作為一般規則,我確保所有變量聲明都以關鍵字var或prefix開頭window。


您還可以標準化語法以這種方式讀取變量,這意味著局部作用域var不會破壞全局變量,var反之亦然。例如,這里發生的事情是模棱兩可的:


 


 greeting = "Aloha";


 function foo() {

     greeting = "Hello"; // overrides global!

 }


 function bar(greeting) {

   alert(greeting);

 }


 foo();

 bar("Howdy"); // does it alert "Hello" or "Howdy" ?

但是,這更加簡潔,而且不易出錯(您實際上不需要記住所有變量作用域規則):


 function foo() {

     window.greeting = "Hello";

 }


 function bar(greeting) {

   alert(greeting);

 }


 foo();

 bar("Howdy"); // alerts "Howdy"


查看完整回答
反對 回復 2019-11-30
?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

你試過了嗎?


如果您這樣做:


var HI = 'Hello World';

在中global.js。然后執行:


alert(HI);

在js1.js它會很好。您只需要global.js在HTML文檔的其余部分之前添加。


唯一的問題是您必須在窗口范圍內(而不是在任何函數內)聲明它。


您可以修改var零件并以這種方式創建它們,但這不是一個好習慣。


查看完整回答
反對 回復 2019-11-30
  • 3 回答
  • 0 關注
  • 2116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號