当我使用console.log打印时,这个'在控制台中,常规功能打印DOM元素,而胖功能打印' Window'元件。为什么会这样?
// case 1
$('.test').each(function(){
console.log(this);
return 0;
});
// case 2
$('.test').each(()=>{
console.log(this);
return 0;
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test"></div>
&#13;
答案 0 :(得分:0)
根据定义,javascript中的箭头函数不会绑定到自己的this
。这是一个旨在使面向对象的编程风格更方便的功能。
下面的链接发布了一些示例,说明为什么在面向对象的样式编程时不方便绑定到自己的this
。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
在箭头函数之前,每个新函数都定义了它自己的这个值(在构造函数的情况下是一个新对象,在严格模式函数调用中是未定义的,如果该函数被调用为&#34,则为基础对象;对象方法&# 34;等)。事实证明,这是一种面向对象的编程风格。