我知道这听起来很傻但我只是问,在我们删除172.20.10.14
变量后,有没有办法保持b
变量的值?
a
或保留var a = 'some string or number';
var b = a;
delete a;
but b is still = 'some string or number';
值的任何其他方式?
答案 0 :(得分:0)
delete
删除值或变量,但删除对象的属性(MDN:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete)。
例如:
var myObj = { a: 1, b: 2 };
delete myObj.a;
// myObj === { b: 2 }
当然,您可以在另一个变量中保留对该值的引用:var copy = myObj.a
(在删除属性之前)。然后变量将保存值(对于基本数字,字符串,布尔值等基元)或引用(对象等)。无论哪种方式,您的副本将在原始属性被删除后保留该值:
var obj = { a: "hello" };
var copy = obj.a;
delete obj.a;
console.log(copy); // "hello"
答案 1 :(得分:0)
删除仅删除对象的属性而不是变量
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
delete person.age;
因此,您提到的代码中的变量“b”将保留“a”的值。
答案 2 :(得分:0)
如果你想删除你的情况,你必须定义一个:
window.a = 'some string or number';
然后通过以下方式删除它:
delete window.a;
或只是
delete a;
delete
只删除属性,不删除属性指向的值。该值可能已经消失,因为没有更多的参考点。
在您的情况下,a
的值是一个字符串,因此,在将a
分配给b
后,b
有自己的值"复制"来自a
。成功删除a
后,a的值也会丢失,但b
的值仍然完好无损。