Показать сообщение отдельно
  #202 (permalink)  
Старый 30.08.2022, 01:00
Аватар для Alikberov
Кандидат Javascript-наук
Отправить личное сообщение для Alikberov Посмотреть профиль Найти все сообщения от Alikberov
 
Регистрация: 16.08.2018
Сообщений: 109

Мeня давно интересовал вопрос, относительно реализации одной синтаксической фишки:
Number.prototype.__defineGetter__("0",
	function() {
		return Math.floor(this);
	}
)

Number.prototype.__defineGetter__("o",
	function() {
		return Math.floor(this);
	}
)

var x = 15.625;
var y = x.o;	// Работает и в y помещается целое от x
var z = x[0];	// Работает и в y помещается целое от x
var i = x.0;	// Uncaught SyntaxError: Unexpected number
Чем грозит реализация подобного синтаксического сахара, раз до сих пор нигде не реализовали?
Если «+x» давно служит эквивалентом «Number(x)», почему нельзя нулём в записи «x.0» принудительно подавлять дробную часть числа?

В принципе, можно округлять и через «x[0]» или «x["0"]», даже через «Number(15.625)[0]». Но это сильно запутает синтаксис…

P.S.: Думаю, через «x._0» тоже вполне можно рафинадить в настоящее время…
Ответить с цитированием