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?
var get = (e) => {
    return new window.Promise((resolve, reject) => {
      $.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: ()=>{ } // Is not working, this is not what I'd expect.
      });
    });
 
    