Создайте пользовательскую функцию в прототипе Boolean, которая возвращает значение self в Integer - PullRequest
0 голосов
/ 02 ноября 2018

Я хочу создать собственный прототип, который преобразует само логическое значение в целое число

пример

let x = true;
x.toInt() // 1

Я пытался создать собственный прототип, но не могу найти значение

Boolean.prototype.testf=() => {console.log(this)}; // don't found value of true

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

arrow-function на самом деле использует текущий окружающий контекст, в вашем коде используется объект window в качестве контекста.

выражение функции стрелки имеет более короткий синтаксис, чем выражение функции и не имеет собственного this , аргументы , супер или new.target .

Вместо этого используйте function declaration или function expression.

Boolean.prototype.toInt = function() {
  console.log('' + this);
};

let x = true;
x.toInt();

let y = false;
y.toInt();
0 голосов
/ 02 ноября 2018

Вы не можете использовать функции стрелок, поскольку они определяют их this лексически, используйте обычную функцию:

 Boolean.prototype.toInt = function() {
   return +this;
 };
...