Penghitungan Harta Deterministik dalam ES6
Soalan:
Walaupun telah memperkenalkan pesanan hartanah, adakah ES6 menjamin susunan yang jelas untuk menghitung sifat objek dalam semua operasi?
Jawapan:
ES2015-ES2019:
Tidak, untuk operasi tertentu seperti for-in, Object .keys dan JSON.stringify, ES6 tidak menguatkuasakan susunan penghitungan tertentu. Ini disebabkan oleh kebimbangan keserasian ke belakang.
gelung untuk-dalam, yang menggunakan kaedah [[Enumerate]], mempunyai susunan penghitungan yang tidak ditentukan mengikut spesifikasi ECMAScript.
Object.keys juga membenarkan pelaksanaan untuk menentukan pesanan penghitungan tersuai untuk untuk masuk kenyataan.
ES2020 dan Kemudian:
Bermula dengan ES2020, susunan hartanah mesti dihormati walaupun untuk operasi warisan seperti for-in dan Object.keys.
Operasi Tambahan dengan Ditakrifkan Pesanan:
Beberapa operasi lain dalam ES6, seperti Object.getOwnPropertyNames, Object.getOwnPropertySymbols dan Object.defineProperties, ikut urutan penciptaan harta untuk objek biasa. Tertib ini ialah:
Pengecualian:
Walau bagaimanapun, objek eksotik tertentu, seperti Proksi, boleh menentukan kaedah [[OwnPropertyKeys]] mereka sendiri untuk mengubah suai susunan penghitungan.
Atas ialah kandungan terperinci Adakah ES6 Menjamin Pesanan Pengiraan Harta yang Konsisten Merentas Semua Operasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!