es6 bind(this)

es6 bind this

语法

fun.bind(this,arg1,arg2,…)
bind()方法会创建一个新的函数,称为绑定函数,fun方法在this环境下调用

this.a = 1;
var module = {
    a : 2,
    getA:function() {
    return this.a;    
    }
};
module.getA();//2

var getA1 = module.getA;
// getA在外部调用,此时的this指向了全局对象
getA1();//1

// 再把getA1方法绑定到module环境上
var getA2 = getA1.bind(module);
getA2();

从上面的例子可以看出,为什么要创建绑定函数,就是当我们调用某些函数的时候是要在特定环境下才能调用到,所以我们就要把函数放在特定环境下,就是使用bind把函数绑定到特定的所需的环境下。

https://www.cnblogs.com/xxxxBW/p/4914567.html

var foo = {
    x: 3
} 
var bar = function(){
    console.log(this.x);
} 
bar(); 
// undefined

var boundFunc = bar.bind(foo);

boundFunc(); 
// 3

将bar方法和foo对象绑定后,bar中的this对象被替换为了foo,并生成了一个新的函数boundFunc,因此在全局环境中调用boundFunc时。也能够訪问到foo对象的属性。

https://www.cnblogs.com/blfbuaa/p/7110641.html
在这里插入图片描述

div的多拽
bind的做用
首先先去掉bind(this),打印下 init()函数中的this

init(){
	this.oDiv.onmousedown=function(ev){
		console.log(this)
    }
}

在这里插入图片描述
this为dom元素

init(){
	this.oDiv.onmousedown=function(ev){
		console.log(this)
    }.bind(this)
}

在这里插入图片描述
this为这个 class了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值