Добавление функциональности в Intl.NumberFormat

Я пытаюсь добавить функциональность в функцию форматирования, но в моем коде что-то не так:

Object.defineProperty(Intl.NumberFormat.prototype, "format", { value: function(){
     //your logic here
     let orig = Intl.NumberFormat.prototype
     console.log(orig);// does not remember the original proto
}, configurable: true } );

Что мне не хватает?

1 ответ

Решение

Вы в основном ловите саму собственность. Вы хотите получить исходный файл до того, как он будет переопределен, и вы можете также сохранить ссылки на его подобъекты, скопировав их:

{
   let orig = Object.assign({}, Intl.NumberFormat.prototype);
   Object.defineProperty(Intl.NumberFormat.prototype, "format", { value: function(){
      //your logic here     
     console.log(orig);// does remember the original proto
   }, configurable: true } );
}
Другие вопросы по тегам