为了账号安全,请及时绑定邮箱和手机立即绑定

javascript面试题

javascript面试题

RISEBY 2018-10-09 13:37:01
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后的值。


查看完整回答
反对 回复 2018-11-09
  • 1 回答
  • 0 关注
  • 477 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信