this一直有点晕,今天写了一个测试,但是还是不理解,求高手给个通俗易懂的简答:
以下代码,为什么点击按钮执行函数内部创建的函数this指向的事window?
(function(){
console.log(self);
console.log(this);//这里的this指向window
})();
<body>
<button id="di" >ssss</button>
<script type="text/javascript">
var d=document.getElementById('di');
function a(){
name='111'
console.log(this);
}
d.addEventListener('click',function(){
a();//a打印的this是window
console.log(this);//打印的是d对应的button元素
var self=this;、//保存this
//为什么内部创建的函数this指向window
(function(){
console.log(self);
console.log(this);//这里的this指向window
})();
});
</script>
</body>
</html>