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')
}
})()
}
我犯了个错,就是不依赖知识点去整理知识。之前看过一篇文章,知识点很模糊,从而下了个定论,但是忘记了函数自执行也是函数。就遵从函数作用域规则。应该有依有据。也不是大概。这样很误导人。