1.如下代码:
<script>
var ok = (function () {
var b = {
a: 1,
c: function () {
}
};
return b;
})()
var n= ok;
var p= ok;
</script>
我的理解不知道正不正确,这个ok()
执行两次,每次都是一个立即执行函数,然后里面有一个立即执行函数的局部变量b,每次赋值为一个对象b={}
,相当于每一次都创建了一个新对象然后把里面的局部变量指向了这个新对象,相当于在堆内存里面有两个对象,这两个对象是独立的个体?
立即执行函数理解的不对。后面是对的,每次都是创建一个新对象,这两个是独立的。