В этой теме я поставил вопрос не о том, ЗАЧЕМ необходимо изобретать новый синтаксис в языках программирования, а о том НРАВИТСЯ или НЕ НРАВИТСЯ предложенные варианты нового синтаксиса. Если,
arseniiv, Вы не хотите обсуждать данный вопрос, то я Вас не заставляю писать мне ответы в данной теме.
Иначе всё обсуждение сводиться к проблеме типа "зачем нам нужно изобретать новую обувь, если наши лапти или валенки вполне хороши и подходят на все случаи жизни !"
Поэтому, я повторяю вопрос:
Вопрос #2:
В существующих реализациях JScript существует проблема с организацией индексированного(оптимизированного) поиска в списке строк заданного в объекте Object. Так, например, строка "valueOf" (и другие permanent members) всегда сущеcтвуют в Object и возвращают указатель на встроенную функцию, несмотря на то, что в цикле
for (i in ob) ... эти члены не видны !
Предлагается синтаксис который позволит разделить permanent member и expando property:
var r = {};
var p1 = r.valueOf; // access to the permanent member (direct access)
var p2 = r.["valueOf"]; // access to a permanent member (indirect access)
var e1 = r->valueOf; // access to expando property only (direct access)
var e2 = r["valueOf"]; // same as r->valueOf; (indirect access)
// alternative:
var e3 = r->["valueOf"]; // same as r->valueOf; (indirect access)
// enum all permanent members:
for (var key in r.permanent) ...
// enum all expandos:
for (var key in r) ...
Неудобство этого решения очевидно: программисты JScript привыкли писать
r.myKey а не
r->myKey;