LINUX.ORG.RU

Падение скорости при изменении __proto__

 


0

4

Я изменил __proto__ одному из объектов и получил следующее сообщение firefox:

TypeError: mutating the [[Prototype]] of an object will cause your code to run very slowly; instead create the object with the correct initial [[Prototype]] value using Object.create

Хотя казалось бы — какая разница? Хотелось бы увидеть какой-нибудь конкретный случай или тест, который показывал бы, что падение скорости действительно есть, тк я пока его не заметил. И с чего бы ему взяться?

Спасибо.

Ответ на: комментарий от Apple-ch

Да тесты подтверждают. Падение скорости наблюдается. Хрен знает почему, наверное оптимизации внутренние.

anonimous
() автор топика
Ответ на: комментарий от anonimous

Хрен знает почему, наверное оптимизации внутренние.

MDN говорит, что это связано с особенностями современных реализаций JS.

theNamelessOne ★★★★★
()

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Obje...

Белым по красному:

The __proto__ property is deprecated and should not be used. Object.getPrototypeOf should be used instead of the __proto__ getter to determine the [[Prototype]] of an object. Mutating the [[Prototype]] of an object, no matter how this is accomplished, is strongly discouraged, because it is very slow and unavoidably slows down subsequent execution in modern JavaScript implementations. However, Object.setPrototypeOf is provided in ES6 as a very-slightly-preferred alternative to the __proto__ setter.

И вроде тебе уже это говорили.

Ja-Ja-Hey-Ho ★★★★★
()
Ответ на: комментарий от Ja-Ja-Hey-Ho

Но это же не текущая спецификация? Че об ней говорить?

anonimous
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.