var z = 10;function foo() { console.log(z); } (function (funArg){ var z = 20; funArg(); })(foo);
这个就是一个考察作用域的问题,所以是10.
但是好像想起来以前看到有一本书说IIFE说的 就写了一段代码验证了一下 得到了 好像真的不能访问 且慢,容我再试试 好吧,写了一段智障代码2019年再次更新
function oopd(){ var name (function() { if(name === undefined){ console.log('hello world') }else { console.log('hello js') }})()}//hello world
之前可以访问是因为在全局作用域下声明name会成为window的属性。js一言难尽!!!
再次更新!!!!
function oo(){ var name = 3; (function() { if(name === undefined){ console.log('hello world') }else { console.log('hello js') }})()}
我犯了个错,就是不依赖知识点去整理知识。之前看过一篇文章,知识点很模糊,从而下了个定论,但是忘记了函数自执行也是函数。就遵从函数作用域规则。应该有依有据。也不是大概。这样很误导人。