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

分析这段代码会alert什么?

分析这段代码会alert什么?

猛跑小猪 2018-11-22 18:15:41
    window.val = 1;    var json = {        val:10,        dbl:function(){            this.val = 2;        }    };    json.dbl();//this.val = 2      ⒈    var dbl = json.dbl;            ⒉    dbl();//window.val = 1;        ⒊    json.dbl.call(window);//this指向变为window,并且执行,window.val = 1;  ⒋    alert(window.val + json.val);//json指向为window,所以val为1,1+1=2???  ⒌注释是我最开始的理解,然后看到了结果之后我试图用答案去逆向思考来找原因。
查看完整描述

1 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

json.dbl();//this.val = 2      ⒈

var dbl = json.dbl;            ⒉

dbl();//window.val = 2;        ⒊

alert(window.val + json.val);//2+2  4

dbl() 执行的时候,此时this 就是 window 对象,window.val = 2, 你的第四部是没有必要的

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

添加回答

举报

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