【Day 5】Google Apps Script - 变数与函式呼叫与GS档的顺序影响

在专案里,所有的档案都预先被 import 在一起的,可直接呼叫其他 gs档里的变数与函式。gs档在专案里的顺序会影响变数的值,所以命名上要很小心。


今日要点:
》可以直接呼叫其他 gs档里的变数与函式
》gs档在专案里的顺序会影响变数的值


今天的内容蛮简单的,主要是要提醒一个小地方,就是在专案里,所有的档案都预先被import在一起的,所以命名上要很小心。

我们做实验一下,假设一个专案里有2个 gs 档,demo1.gs 和 demo2.gs。

实验1 - 你写在别的 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 但你可以直接使用它的变数与函式。

实验2-1 - 如果後面的档案也定义了相同的变数,那後面会把前面的给盖掉

假设 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 里的变数'。

实验2-2 - 把 demo2.gs 在专案的位置往上移到 demo1.gs 之前

把 demo2.gs 在专案的位置往上移到 demo1.gs 之前。

执行结果

我们在执行 funcDemo1_1(),varDemo2 就如预期是印出 '...在 demo1.gs 里的变数'。

以上就是介绍变数及函式呼叫要小心的地方,如果命名习惯很好的话,是不太会有问题的。


<<:  [Day05] 运算式与运算子

>>:  【Day20】建立计数器的Test,并提供测试使用的方法 ୧☉□☉୨!

2020it邦铁人赛-30天手把手的Vue.js教学 Day28 - 关心时事! 做个简单的COVID-19追踪app吧!(上)

tags: Vue.js ItIron2020 前言 终於进到最终的三天了,坦白说做为一个教学的系列...

Day30 - 述词和完赛结语

述词 ( Predicate ) 的回传值皆为 True / False,因此在撰写 SQL 的筛选...

Day 02 什麽是关键字广告?

昨天聊到在搜寻引擎输入字词触发进而触发关键字广告,有些人可能会好奇,这些广告是以什麽形式出现呢? 这...

Python - Video to Ascii 影片转 Ascii 套件参考笔记

Python - Video to Ascii 影片转 Ascii 套件参考笔记 参考资料 Gith...

Day00 - 开始之前

本系列文之後也会置於个人网站 这系列文章将带大家探讨软件开发上,那些身份验证与授权的相关议题。此外...