bind改变函数内部this指向的方式整理

bind改变函数内部this指向的方式整理

之前一直比较纠结bind的使用就把各种形式的函数都测试了一遍

  • 点击事件
//点击事件
        document.querySelector('div').onclick = function () {
            console.log(this);
        }.bind(新的指向)
        
  • 自调用函数
//自调用函数
        (function () {
            console.log(this);
        }.bind(新的指向)()) 
         //因为bind不会调用函数所以要用在bind(新的指向)的后边自己加个()调用
        
  • 回调函数
//回调函数
 var time = setInterval(function name(params) {
            console.log(this);
            clearInterval(time)
        }.bind(新的指向), 500)   
         //直接在回调函数的{ }后面加就可以
        
  • 对象上的方法
  //对象上的方法
       var obj = {
           sey:function () {
               console.log(this);
               
           }.bind(新的指向)
       }

       obj.sey()
  • 构造函数 构造函数改变this指向将无法拥有原型对象 pototype
//构造函数 的原型对象pototype 的方法 可以改变this指向
 //构造函数
        document.body.name = 'body'
        var Test = function (name) {
            this.name = name
            console.log(this);
        }
       
        Test.prototype.sey=function(){
            console.log(this.name);
            
        }.bind(document.body)
        
        var test = new Test('小明')
       
        Test()       // this 是window 
        test.sey()   // this document.body
       

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值