Могу ли я создать свою собственную функцию then () в Javascript и выполнить ее? - PullRequest
0 голосов
/ 16 апреля 2019

Я просматривал учебник об обещаниях в Javascript. Я видел использование метода then () во многих местах.

Когда я написал приведенный ниже код, я увидел функцию then () в секции __proto__ консоли.

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 и выполнить ее?.

Ответы [ 2 ]

1 голос
/ 16 апреля 2019

Посмотрите на это сообщение в блоге. У вас должно быть достаточно четкое представление о том, что это за обещания, когда вы закончите.

1 голос
/ 16 апреля 2019

Это потому, что когда вы создаете обещание, оно __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()

...