关于自执行函数遇到的问题

'use strict';
// 立即执行函数的几种写法
// 最常用的两种
// ( function() {}() );
// ( function() {} )();
var fn1 = (function () {
    console.log('fn1');
})();

var fn2 = function () {
    console.log('fn2');
}()

// 我们有的时候会看见上面两种写法,其实都是自执行的,因此下面会打印出undefined

console.log(typeof fn2) // undefined

// 延伸

// function() {
//  console.log('匿名函数');
// }();
// function fn3() {
//  console.log('fn3');
// }();

上述两种写法代码都会报错,底层原理是归约

function fn3() {
    console.log('fn3');
}(1)
// 这种写法是可以的
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容