<!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>