Если вы посмотрите на спецификацию javascript на страницах 70 и 71, вы увидите, как это должно быть реализовано:
Префикс:
blockquote> blockquote>
- Пусть expr является результатом вычисления UnaryExpression.
- Выдайте исключение SyntaxError, если все условия истинны: 72 © Ecma International 2011 Тип (expr) - это ссылка IsStrictReference ( expr) true Тип (GetBase (expr)) - это запись среды. GetReferencedName (expr) является либо «eval», либо «arguments»
- . Пусть oldValue будет ToNumber (GetValue (expr)).
- Пусть newValue является результатом добавления значения от 1 до oldValue, используя те же правила, что и для оператора + (см. 11.6.3).
- Вызов PutValue (expr, newValue).
- Возврат newValue.
Или проще:
- Инкрементное значение
- Возвращаемое значение
Postfix:
blockquote>
- Пусть lhs является результатом оценки LeftHandSideExpres sion.
- Выбросить исключение SyntaxError, если все условия истинны: Type (lhs) is Reference is true IsStrictReference (lhs) is true Тип (GetBase (lhs)) - это запись среды GetReferencedName (lhs) либо «eval» или «arguments»
- Пусть oldValue будет ToNumber (GetValue (lhs)).
- Пусть newValue является результатом добавления значения 1 в oldValue, используя те же правила как и для оператора + (см. 11.6.3).
- Вызов PutValue (lhs, newValue).
- Возвращает oldValue.
Или проще:
- Назначить значение темп
- Инкрементное значение
- Температура возврата