Javascript 理解JS中的delete操作符

Javascript 理解JS中的delete操作符,javascript,Javascript,据我所知,delete操作符删除相应的引用,而不是通过该引用定位的对象。例如,让我们有一个简单的对象,并将delete运算符应用于此属性之一 var o= {prop: "property", test: "sometext"}; delete o.prop; 我们是否删除了“property”字符串本身,还是只删除了对该字符串的引用,而“property”字符串将被垃圾收集器作为无引用删除。从技术上讲,是的,您删除了该属性和值本身,因为它不再被引用,将被单独丢弃 您可以通过让一个对象由两个属

据我所知,
delete
操作符删除相应的引用,而不是通过该引用定位的对象。例如,让我们有一个简单的对象,并将
delete
运算符应用于此属性之一

var o= {prop: "property", test: "sometext"};
delete o.prop;

我们是否删除了
“property”
字符串本身,还是只删除了对该字符串的引用,而
“property”
字符串将被垃圾收集器作为无引用删除。

从技术上讲,是的,您删除了该属性和值本身,因为它不再被引用,将被单独丢弃


您可以通过让一个对象由两个属性引用来检查:如果您删除另一个属性,其中一个属性将不会被触碰。

从技术上讲,是的,您删除了该属性,而值本身(因为它不再被引用)将被单独丢弃


您可以通过让一个对象被两个属性引用来检查:如果删除另一个属性,其中一个属性将不会被触及。

下面的代码将帮助您使用测试对象和console.log获得可视化结果,以便您可以看到对象属性发生了什么变化

在删除之前,当我们console.log()时;obj.prop1,它会在您的控制台中显示“yo”。 我们删除后,这将成为未定义

你可以使用delete来清理未使用的属性,当你用完它们或者不再需要它们时,这不是一个很大的速度提升,但是当你的网站通过廉价的机器浏览时可能会有所帮助

<script type="text/javascript">

    var obj = {

        prop1: 'yo',
        prop2: 'yo'

    };

    console.log(obj.prop1);
    delete obj.prop1;
    console.log(obj.prop1);

    console.log(obj); //Will return only prop 2, prop1 is removed from the object.

</script>

var obj={
建议一:"哟",,
道具二:‘哟’
};
控制台日志(obj.prop1);
删除obj.prop1;
控制台日志(obj.prop1);
控制台日志(obj)//将仅返回道具2,道具1将从对象中移除。
PS:


记录整个对象后,该属性将完全消失。

下面的代码将帮助您使用测试对象和console.log获得可视化结果,以便您可以查看对象属性发生了什么变化

在删除之前,当我们console.log()时;obj.prop1,它会在您的控制台中显示“yo”。 我们删除后,这将成为未定义

你可以使用delete来清理未使用的属性,当你用完它们或者不再需要它们时,这不是一个很大的速度提升,但是当你的网站通过廉价的机器浏览时可能会有所帮助

<script type="text/javascript">

    var obj = {

        prop1: 'yo',
        prop2: 'yo'

    };

    console.log(obj.prop1);
    delete obj.prop1;
    console.log(obj.prop1);

    console.log(obj); //Will return only prop 2, prop1 is removed from the object.

</script>

var obj={
建议一:"哟",,
道具二:‘哟’
};
控制台日志(obj.prop1);
删除obj.prop1;
控制台日志(obj.prop1);
控制台日志(obj)//将仅返回道具2,道具1将从对象中移除。
PS:

在记录整个对象之后,该属性将完全消失。

根据,JavaScript中的
delete
关键字“从对象中删除属性”。也就是说,如果
o.prop
引用了一个对象(而不是字符串),那么对该对象的引用(即
o.prop
)将被删除,但是,如果有其他变量/属性指向该对象,则该对象可能会保留在内存中。

根据,JavaScript中的
delete
关键字“从对象中删除属性”。也就是说,如果
o.prop
引用了一个对象(而不是字符串),则该对象的引用(即
o.prop
)将被删除,但如果存在指向该对象的其他变量/属性,则该对象可能会保留在内存中