М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» тоже вполне можно рафинадить в настоящее время…