title: this context inside Promise doesn't refer to the internal instance
body: <p>I am not sure if what I am expecting is correct or not, but if <code>Promise</code> is like any other JavaScript class, it should have a <code>this</code> context.</p>
  
  <p>But the following code surprises me.</p>
  
  <pre><code>var promise = new Promise(function (resolve, reject) {
      console.log(this === window); // Prints true
  });
  </code></pre>
  
  <p>Am I missing the concept of native Promises here?</p>
  
  <p>My objective is to attache some property to the promise object while creating it, and be able to access it later.</p>
  
  <p>I know the callback function passed in the <code>Promise</code> isn't in any context and would be called just like a plain function. But is there a way to attach the property to each promise returned?</p>
  
  <pre><code>this.someProp = someobj.returnVal();
  </code></pre>
  
  <p><strong>More Info</strong></p>
  
  <p>Basically, I am making an ajax request inside the promise, and I want to store the request object in the promise so that I can use it to <code>abort</code> the request when I want. by adding a polyfill <code>abort</code> to the <code>Promise.prototype</code></p>
  
  <p>Here's the actual code.</p>
  
  <pre><code>var _request;
  
  const promise = new Promise(function (resolve, reject) {
  
    this._request = superagent.get(url)
       .end((error, res) =&gt; { resolve(res); }); // What I expect to work 
  
    _request = superagent.get(url)
       .end((error, res) =&gt; { resolve(res); }); // But I have no this context
  });
  
  Promise.prototype.abort = function () {
    this._request.abort(); // Can't do this
  }
  </code></pre>