为什么javascript胖箭头功能定义与常规功能不同

时间:2017-07-22 08:22:13

标签: javascript jquery

当我使用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;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

根据定义,javascript中的箭头函数不会绑定到自己的this。这是一个旨在使面向对象的编程风格更方便的功能。

下面的链接发布了一些示例,说明为什么在面向对象的样式编程时不方便绑定到自己的this

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions

  

在箭头函数之前,每个新函数都定义了它自己的这个值(在构造函数的情况下是一个新对象,在严格模式函数调用中是未定义的,如果该函数被调用为&#34,则为基础对象;对象方法&# 34;等)。事实证明,这是一种面向对象的编程风格。