var test=(function(){ var _v='a'; function changeV(){
_v='b';
}; function getV(){ return _v;
} return { v:_v, changeV:changeV, getV:getV,
}
})()
test.v//'a'test.getV()//'a'test.changeV()
test.v//'a'test.getV()//'b'test.changeV()发生了什么,大神 来讲讲 (¬_¬)回来填坑。。。:其实就是当时没理解var _a=1;
var obj={
a:_a};
console.log(obj.a);//1_a=2;
console.log(obj.a);//1
1 回答
当年话下
TA贡献1890条经验 获得超9个赞
v:_v,
这里是对return 的对象进行了一个属性的赋值,赋的是一个字符串,这时候不是对象,直接copy的值。
changeV和getV是闭包,操作的是_v
这个变量。
string和number类型的数据只是在使用的时候被转化成对象,操作完成在内存中存的是其valueOf后的值。
添加回答
举报
0/150
提交
取消