Alikberov,
1. Стрелочная функция захватывает
this при создании и не меняет его при вызове, т.е. твоё
Number.prototype.__defineGetter__
("ME", () => {
this.PERSON = "Me";
return this;
});
Равносильно:
var arrowThis = this;
Number.prototype.__defineGetter__
("ME", function () {
arrowThis.PERSON = "Me";
return arrowThis;
});
Где в
arrowThis будет лежать в данном случае глобальный
this, который в нестрогом режиме равен
window, в строгом -
undefined.
2.
BigInt - это не Int64, это реально длинная арифметика, и она условно безгранична (ограниченна только платформой).