let a = {
a:1,
b:(function(){
console.log(1111111111)
})()
}
在控制台输入这些会有log 1111111111 产生,但是这有什么意义? 为何这个会被执行?这不是一个属性的值吗?
若打印a.b 则得到undefined 为什么?
困惑
let a = {
a:1,
b:(function(){
console.log(1111111111)
})()
}
在控制台输入这些会有log 1111111111 产生,但是这有什么意义? 为何这个会被执行?这不是一个属性的值吗?
若打印a.b 则得到undefined 为什么?
困惑
立即执行函数可以一直保持运行状态 里面的变量又不会被外面访问到
你这个例子 没有返回东西给b 感觉意义不大 一般是返回东西给b的 比如下面这样的:
let a = {
a:1,
b:(function(){
var i=1;
return function(){return i++;}
})()
}
使用的时候 是 a.b()