ăĄăăťăźă¸
TypeError: can't delete non-configurable array element (Firefox) TypeError: Cannot delete property '2' of [object Array] (Chrome)
ă¨ăŠăźăżă¤ă
ä˝ăăăžăăăăŞăăŁăăŽăďź
é ĺăç縎ăăăă¨ăăŚăăžăăăé ĺăŽčŚç´ ăĺ¤ć´ä¸ĺŻă§ăăé ĺăŽç縎ăăăă¨ăăć°ăăé ĺăŽéˇăăčś ăăčŚç´ ăŻĺé¤ăăăžăăăăăŽăˇăăĽă¨ăźăˇă§ăłă§ăŻĺ¤ąćăăžăă
configurable ĺąć§ăŻăăăăăŁăăŞăă¸ă§ăŻăăăĺé¤ă§ăăăăŠăăăăăăł (writable 䝼ĺ¤ăŽ) ĺ¤ć´ă§ăăăăŠăăăĺśĺžĄăăžăă
é常ăé
ĺĺćĺĺă§çćăăăăŞăă¸ă§ăŻăăŽăăăăăŁăŻĺ¤ć´ĺŻč˝ă§ăăăăăăăă¨ăă° Object.defineProperty() ă使ç¨ăăăĺ ´ĺăć˘ĺŽă§ăăăăăŁăĺ¤ć´ă§ăăžăăă
äž
Object.defineProperty ă§çćăăĺ¤ć´ä¸ĺŻč˝ăŞăăăăăŁ
ăăăăăŁăĺ¤ć´ă§ăăŞăăăăŤćĺŽăăĺ ´ĺăObject.defineProperty() ăŻć˘ĺŽă§ĺ¤ć´ă§ăăŞăăăăăăŁăçćăăžăă
var arr = [];
Object.defineProperty(arr, 0, {value: 0});
Object.defineProperty(arr, 1, {value: "1"});
arr.length = 1;
// TypeError: can't delete non-configurable array element
é ĺăç縎ăăăĺ ´ĺăčŚç´ ăĺ¤ć´ĺŻč˝ăŤč¨ĺŽăăĺż čŚăăăăžăă
var arr = [];
Object.defineProperty(arr, 0, {value: 0, configurable: true});
Object.defineProperty(arr, 1, {value: "1", configurable: true});
arr.length = 1;
ăˇăźăŤăăăé
ĺ
Object.seal() é˘ć°ăŻăăšăŚăŽĺĺ¨ăăčŚç´ ăč¨ĺŽä¸ĺŻăŤăăžăă
var arr = [1,2,3];
Object.seal(arr);
arr.length = 1;
// TypeError: can't delete non-configurable array element
Object.seal() ăŽĺźăłĺşăăĺé¤ăăăăé
ĺăŽăłăăźăĺăĺż
čŚăăăăžăăăłăăźăŽĺ ´ĺăăłăăźăăé
ĺăŽç縎ăŻĺ
ăŽé
ĺăŽéˇăăŤĺ˝ąéżăăžăăă/p>
var arr = [1,2,3];
Object.seal(arr);
// Copy the initial array to shorten the copy
var copy = Array.from(arr);
copy.length = 1;
// arr.length == 3