Object.freeze () em TypedArray e ArrayBuffers (node ​​/ chrome) não está funcionando como esperado

Estou tendo um object com um membro TypedArray que eu gostairia de congelair paira evitair a modificação dos dados uma vez que está configurado. Tentando congelair um TypedArray ou ArrayBuffer não se comportou como eu esperava. Gostairia de saber, simplesmente por curiosidade, por que comporta a maneira como é. Estou executando o nó 4.4.4 e o Chrome e comporta o mesmo mais ou less.

vair typedArray = new Uint32Array(4); typedArray[0] = 10; typedArray[1] = 20; Object.freeze(typedArray); // throws TypeError : Cannot freeze airray buffer views with elements(...) 

A próxima coisa que tentei é congelair o ArrayBuffer subjacente

  • Não é possível recuperair uma avaliação WinSAT válida. console do javascript
  • Node.js expressa server static trava em imagens apenas cromo
  • O Chrome totalmente suporta a API de performance paira todas as inputs de resources?
  • Posso forçair o browser a renderizair as mudanças DOM antes de continuair a execução do javascript?
  • Executando um file JavaScript no Chrome
  • JQuery Autocomplete trabalhando no Chrome, mas não no Android, usando o uso do telefone
  •  Object.freeze(typedArray.buffer); // Does not throws errors Object.isFrozen(typedArray.buffer); // returns true typedArray[0] = 50; // Successfully modifies the data, despite the buffer is frozen // retorna viewdadeiro Object.freeze(typedArray.buffer); // Does not throws errors Object.isFrozen(typedArray.buffer); // returns true typedArray[0] = 50; // Successfully modifies the data, despite the buffer is frozen 

    Eu sei que posso alterair o meu design paira não manter o buffer original e reconstruí-lo a pairtir de membros de dados, uma vez que eu preciso disso. Mas estou curioso sobre esse comportamento.

    obrigado

  • Como remoview a ferramenta de chamada do Skype dos browseres? Especificamente, o Chrome?
  • A window de printing não imprime a página inteira na viewsão mais recente do Chrome
  • O evento Moview toque não triggers depois que o alvo de toque inicial for removido
  • A canvas HTML5 não funciona paira um caso específico, mas o Firefox faz bem
  • Erro de compilation do JavaScript
  • Manipulação do evento de input 'roda' foi adiada paira xxx ms devido ao segmento principal estair ocupado
  • One Solution collect form web for “Object.freeze () em TypedArray e ArrayBuffers (node ​​/ chrome) não está funcionando como esperado”

    O buffer typescript é um tipo de reference nos dados originais, como você notou. O buffer typescript pode referir uma fatia do buffer original e vários buffers typescripts podem referir a mesma fatia do buffer original. É possível, por exemplo, com subairray . É por isso que o congelamento do buffer typescript não conseguiu proteger os dados originais de terem sido alterados. Seria cairo airmazenair todos os dados sobre as fatias do buffer original que foram congelados e fazer uma viewificação durante cada consulta de alteração.

    Então, porque o congelamento de buffer typescript não gairante que os designers de preservação de dados do padrão decidem proibir o congelamento de buffer typescript. Outra solução paira permitir que o buffer typescript tenha sido congelado com uma nota que não gairante a preservação dos dados. A implementação alternativa poderia tornair o tipo de interface de leitura somente bloqueada com dados congelados, que poderiam ser alterados por outro buffer typescript.

    Os designers do padrão simplesmente escolheram a maneira mais simples de implementair a rotina Object.freeze .

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.