Arrow function would change the context of this : <p>Is it by design that arrow functions can redefine existing functions behavior? Using jQuery's get (yes, I know) - I'm getting two different values of this inside success depending on whether arrow function is used or not. Can anyone explain why it happens?</p>

<pre><code>var get = (e) =&gt; {
    return new window.Promise((resolve, reject) =&gt; {
      $.ajax({
        context: {test: 1}, // this
        type: "GET",
        url: "...",
        complete: function () {
          // this is only correct when using old syntax, arrow
          // function would redefine the value of this to the function's parent
        },
        complete: ()=&gt;{ } // Is not working, this is not what I'd expect.
      });
    });
</code></pre>
