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

一个关于this问题

一个关于this问题

泛舟湖上清波郎朗 2019-02-15 11:53:54
window.val = 1;var obj={val: 2, dbl: function () {this.val *= 2;val *= 2; console. log('val:', val) ; console. log( 'this.val:', this.val) ; } };//说出下面的输出结果obj.dbl();var func = obj.dbl; func();这个问题我知道放在console中运行去答案,想要的分析this指向问题。
查看完整描述

1 回答

?
一只名叫tom的猫

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

var func = obj.dbl;
func();

第一句把函数引用赋值给一个变量,会造成 this 丢失,所以 func 内部的 this 是指向全局对象的。所以函数内部 this.val => window.val => val => 1 。这三个是相等的。
所以结果是:
this.val = this.val * 2 => 2
val = val * 2 => 4

val: 4this.val: 4


查看完整回答
反对 回复 2019-02-15
  • 1 回答
  • 0 关注
  • 390 浏览
慕课专栏
更多

添加回答

举报

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