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

Сообщение от voraa Посмотреть сообщение
Не понял о чем это.
width = reg.WIDTH;
flag = isFinite(width);
if(!flag)
	width = regId in Widths ? Widths[regId] : 16;
Как видно, всюду - восклицательные знаки. Признак того, что ширину слова приходится читать из таблицы - getter её не передаёт.
Сообщение от voraa Посмотреть сообщение
В js есть примитивные типы: number, string, boolean, undefined, null, symbol, bigint
Все остальное - объекты.
Свойства и методы могут быть только у объектов.
Нельзя задать свойство примитивному типу
Почему тогда это работает?
Я тренировался специально над Number, чтобы затем завернуть всё в алгоритм выше. Но не работает!
В чём подвох?
Сообщение от voraa Посмотреть сообщение
Вы пишите n.WITH = 16. Но n - bigint. Примитивный тип.
Только сделать опцию SIGNED временной. Обнулять после первого использования
Т.е. например так
Я тоже думал о таком костыле, но надеялся, что в JS есть возможность стрюковать.
Ответить с цитированием