gpt4 book ai didi

javascript - 删除全局对象中的属性(误解)

转载 作者:行者123 更新时间:2023-12-03 02:13:32 28 4
gpt4 key购买 nike

所以我实际上正在阅读有关用于删除对象属性的“delete”方法的文档,并且我偶然发现了这个“此外,您不能删除使用 var 关键字声明的全局对象的属性。”

所以我真正理解的是:假设你创建了一个数组:

var test = ["test1", "test2", "test3"];

然后,如果您尝试删除 "test1" 属性(顺便说一句,我可以调用数组的元素,它是一个对象,数组对象的属性),或者也许如果你删除例如:删除testing.length你将无法?我不知道我所说的对你来说是否有意义,请进一步解释?!

最佳答案

Then if you attempt to delete the "test1" property ( by the way , can i call an element of an array, which is an object, a property of the array object).

该数组没有名为“test1”的属性。它有一个名为 "0" 的属性,其值为 "test1",但通常认为数组根本不具有属性是不好的。从技术上讲,数组是对象,可以像常规对象一样添加“test1”等属性,但这几乎总是一个坏主意:

var testing = ['a','b','c'];
testing.test1 = 'hello';
delete testing.test1;

数组元素不是属性,但它们是属性的值,这些属性是元素的整数索引:

var testing = ["test1", "test2", "test3"];
delete testing[0];

使用delete运算符从数组中删除元素通常不是您想要做的。以上结果在数组中:

[empty, "test2", "test3"]

长度3。通常您想使用 Array.prototype.splice 从数组中删除元素,或shiftpop如果您想重复删除最后一个元素的第一个元素:

var testing = ["test1", "test2", "test3"];
testing.splice(0,1); // Delete 1 element from position 0
// Results in ["test2", "test3"]

关于javascript - 删除全局对象中的属性(误解),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49454067/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com