在專案裡,所有的檔案都預先被 import 在一起的,可直接呼叫其他 gs檔裡的變數與函式。gs檔在專案裡的順序會影響變數的值,所以命名上要很小心。
今日要點:
》可以直接呼叫其他 gs檔裡的變數與函式
》gs檔在專案裡的順序會影響變數的值
今天的內容蠻簡單的,主要是要提醒一個小地方,就是在專案裡,所有的檔案都預先被import在一起的,所以命名上要很小心。
我們做實驗一下,假設一個專案裡有2個 gs 檔,demo1.gs 和 demo2.gs。
demo1.gs
var varDemo1 = "varDemo1 這是定義在 demo1.gs 裡的變數";
function funcDemo1_1() {
console.log('執行 funcDemo1_1() 這是定義在 demo1.gs 裡的函式');
funcDemo2_1();
console.log(varDemo2);
}
demo2.gs
var varDemo2 = 'varDemo2 這是定義在 demo2.gs 裡的變數'
function funcDemo2_1() {
console.log('執行 funcDemo2() 這是定義在 demo2.gs 裡的函式');
}
當你執行 demo1.gs 裡的 funcDemo1_1() 時,你會發現其實你沒有 import demo2.gs 但你可以直接使用它的變數與函式。
假設 demo1.gs 多一行跟 demo2.gs 相同的名稱的變數 varDemo2。
demo1.gs
var varDemo1 = "varDemo1 這是定義在 demo1.gs 裡的變數";
var varDemo2 = 'varDemo2 這是定義在 demo1.gs 裡的變數'
function funcDemo1_1() {
console.log('執行 funcDemo1_1() 這是定義在 demo1.gs 裡的函式');
funcDemo2_1();
console.log(varDemo2);
}
demo2.gs
var varDemo2 = 'varDemo2 這是定義在 demo2.gs 裡的變數'
function funcDemo2_1() {
console.log('執行 funcDemo2() 這是定義在 demo2.gs 裡的函式');
}
我們在執行 funcDemo1_1(),我們可能會預期 varDemo2 應該是印出 '...在 demo1.gs 裡的變數',但實際上他會印出 '...在 demo2.gs 裡的變數'。
把 demo2.gs 在專案的位置往上移到 demo1.gs 之前。
我們在執行 funcDemo1_1(),varDemo2 就如預期是印出 '...在 demo1.gs 裡的變數'。
以上就是介紹變數及函式呼叫要小心的地方,如果命名習慣很好的話,是不太會有問題的。