有关函式的基础介绍
可参考我之前发的文章
https://ithelp.ithome.com.tw/articles/10253184/draft
在我们之前使用的函式
我们都必须呼叫它
但我们若不想呼叫 但函式又会执行 要怎麽做呢??
这时候就可以用立即函式
立即函式(IIFE) 本身也是表达式
MDN: https://developer.mozilla.org/zh-TW/docs/Glossary/IIFE
// 立刻执行
// 无法在函式外被再次执行
(function IIFE(){
console.log('立即函式',IIFE);
}())
console.log(IIFE); // IIFE is not defined
当然我们也可以不用给予函式名称
(function (){
console.log('立即函式');
}())
// 小括号也可以放外面
(function (){
console.log('立即函式');
})();
立即函式还有一个作用
就是限制变数的作用域
(function (){
var dog = '小黑'
console.log(dog);
})();
console.log(dog); // dog is not defined
立即函式传参数
(function (hello){
console.log(hello);
})('你好');
// 由於立即函式本身也是函式表达式
// 所以会回传值
var world = (function (hello){
console.log(hello);
return hello;
})('你好');
console.log(world);
立即函式内容传到另一个立即函式内
var a = {};
(function (b){
b.person = '小明'
})(a);
// 要记得补上分号 因为不符合ASI规则
(function (c){
console.log(c.person);
})(a);
立即函式透过全域物件(wimdow)来传递值
通常运用在大型框架上
(function (global){
global.person = '小明'
})(window);
(function (){
console.log(person); // 小明
})();
那今天的介绍就到这里
若有任何问题 或 内容有误
可以跟我说唷
上一篇提到有工具可以做到丛集 (Cluster) 的功能,以使用多线程,今天就要来简单介绍一下这个强...
前面 9 天都在介绍操作环境,今天终於要进到编辑器啦!我选用的编辑器是 nvim,但是如果你要用 v...
https://github.com/PacktPublishing/Machine-Learni...
本篇文章同步发表在 HKT 线上教室 部落格,线上影音教学课程已上架至 Udemy 和 Youtu...
今天来看看 TCP/IP 之後所提出,有着更完善架构的 OSI,到底有哪些规范吧! OSI 七层 O...