-
我把对象的方法直接传给 setTimeout 当回调,运行到一半就报 this 是 undefined,我对着 JavaScript 的 this 指向丢失排查了大半天的复盘
用原生 JavaScript 写小组件,有个类的方法负责更新状态,我把它当回调传给了 setTimeout 和按钮事件监听,读起来天经地义。一运行控制台就炸:Cannot read properties of undefined,报错在方法内部 this.state 那行。懵了:方法明明是这对象的,this 不就该是它吗?排查大半天才理解 JS 里让无数人栽跟头的概念:this 的指向不取决于方法…- 0
- 0
-
同一个方法自己调好好的、一传给 setTimeout 或事件监听当回调就报 this 是 undefined:JavaScript this 绑定丢失的避坑复盘
这是一个让我对 JavaScript 的 this 彻底改观的 bug,也是几乎每个 JS 开发者都会踩一次的成人礼。事情是这样的:我写了一个类里面有个方法 handleClick,方法里要用到这个类实例的一些数据比如 this.state。开发时我直接调用 instance.handleClick 一切正常,可当我把这个方法作为回调函数传出去,比如绑给一个按钮的点击事件或者塞进一个 setTim…- 0
- 0
回调
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!


