首页 > 其他 > 详细

关于settimeout中的this指向解决办法

时间:2020-12-13 20:32:23      阅读:27      评论:0      收藏:0      [点我收藏+]

1.var that = this;(最简单,最省力)

this.getNumLater = function(){
        setTimeout(function(){
            console.log(that.num);    //利用闭包访问that,that是一个指向obj的指针
        }, 1000)
    }

2.bind()方法(这里是创建了一个新函数,并将第一个参数作为新函数运行时的this)

this.getNumLater = function(){
        setTimeout(function(){
            console.log(this.num);
        }.bind(this), 1000)    //利用bind()将this绑定到这个函数上
    }

3.箭头函数(ES6中的箭头函数完全修复了this的指向,this总是指向词法作用域,也就是外层调用者obj)

    this.getNumLater = function(){
        setTimeout(() => {
            console.log(this.num);
        }, 1000)    //箭头函数中的this总是指向外层调用者,也就是Obj
    }

原文链接Little Zhang关于setInterval和setTImeout中的this指向问题

关于settimeout中的this指向解决办法

原文:https://www.cnblogs.com/dagongren/p/14129547.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!