给函数绑定一个特定上下文

<!DOCTYPE html>
<html>
<head>
<title>给函数绑定一个特定上下文</title>
<meta charset="utf-8">
</head>
<body>
<button id="test">Click me</button>
<script type="text/javascript">

function bind(context,name){//用于创建并返回一个匿名函数,该函数使用apply调用了原始函数,以便强制将上下文设置成我们想要的任何对象。本例中,传给bind()的第一个参数就是要设置的上下文对象。上下文context和方法名称name。通过匿名函数的闭包进行传入,在函数结束时进行调用,而匿名函数闭包则包含了传递给bind的参数
return function(){//返回一个匿名函数
return context[name].apply(context,arguments);//个人认为return在这里有无结果一样
}

}
var button={
clicked:false,
click:function(){
this.clicked=true;
console.log(this);
console.log(button.clicked);
}
}

var elem=document.getElementById('test');
elem.addEventListener('click',bind(button,'click'),false);
</script>
</body>
</html>

转载于:https://www.cnblogs.com/superZz/p/5791106.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值