0

我正在阅读有关 Javascript 中的 Promises 的教程。我在很多地方都看到了 then() 方法的用法。

当我编写下面的代码时,我__proto__在控制台的部分下看到了“then()”函数。

const myPromise = new Promise(function(resolve, reject) {});
console.log(myPromise);

但是当我编写以下代码时,我无法观察到相同的“then()”函数,

class Car {
   constructor(color, type, doors) {
      this.color = color;
      this.type = type;
      this.doors = doors
   }
}
const myCar = new Car('blue', 'sedan', '4');
console.log(myCar);

then()所以,我在想,我们可以在 Javascript 中创建自己的函数并执行它吗?

4

2 回答 2

1

这是因为当您创建承诺时,它__proto__指向Promise.prototype 并且当您使用类创建对象时,它__proto__指向Object.prototype

有关更多信息,请阅读此https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain

是的,我们可以创建自己的then函数并执行它,但 除非您确切知道自己在做什么,否则我们不应该这样做

这是创建我们自己的then方法的示例

class myObj extends Object {
  then() {
    console.log('then is called');
  }
}

var mo = new myObj()

现在你可以打电话了mo.then()

于 2019-04-16T06:10:09.680 回答
1

看看这篇博文。当你完成时,你应该对 Promise 的全部内容有一个相当扎实的概念。

于 2019-04-16T06:10:46.520 回答