Wpływ i zalety tworzenia pustego obiektu przy użyciu Object.create (null)
Po pierwsze, wykonałem szybki testowy test jsperf, aby pokazać oczywiste:Object.create(null)
jest wolniejszy niż tworzenie obiektu za pomocą{}
składnia.
http://jsperf.com/js-object-creation-null-proto
Ale biorąc pod uwagę ten fakt, czy pierwszy przypadek może być dobrą alternatywą, czasami dotyczącą optymalizacji i wydajności? Innymi słowy, czy manipulowanie najbardziej lekkim obiektem js może zwiększyć wydajność na tyle, że w niektórych przypadkach stał się rozsądnym wyborem.
Mam na myśli przypadki, w których będziesz często uzyskiwał dostęp do właściwości obiektu lub na przykład intensywnie korzystałeś z pętli for in.
Czy ta metoda jest zbyt ryzykowna, aby można ją było wykorzystać w bibliotece, w której ludzie mogą doprowadzić do zniszczenia tych obiektów, które nie posiadają standardowych właściwości, wprowadzonych przez standardObject
prototyp?
Czy znasz także inny (szybszy) sposób tworzenia najlżejszego obiektu js?
PS: Zrobiłem krótki przypadek testowy, aby pokazać przypadek przy użyciu aObject.create(null)
a dostęp do właściwości jest nieco bardziej skomplikowany niż w przypadku{}
.
http://jsperf.com/js-object-creation-and-accessing-properties