JavaScriptdestroy
方法无权访问对象实例。在我们的示例中,我们将看到解决此问题的两种方法。
在一个实例中,我们将介绍delete
运算符,在下一个实例中,我们将尝试传递对象及其实例。因此,我们将检查我们的对象及其实例是如何设置的undefined
。
1.在JavaScript中使用delete操作符销毁对象
一个对象由多个属性作为键值对组成。由于没有将 JavaScript 引入任何会直接使对象消失的功能,因此我们必须从引用中删除属性和相应的值。
因此,在这种情况下,请删除该name
属性。让我们看看使用delete
运算符的影响。
代码片段:
const Employee = {
name: "xyz",
id: 1
};
console.log(Employee.name);
delete Employee.name;
console.log(Employee.name)
;
输出:
可以将后面的Employee.name
值可视化为undefined
。对象仍然由id
属性组成。
如果我们删除该属性,则该对象在逻辑上是空的。但是对象不会从内存中被连根拔起。
尽管如此,该对象不具有过去的任何属性。
2.destroy在JavaScript中使用方法和传递对象实例
我们将启动一个定义destroy
方法的类构造函数。在这里,destroy
函数获取要操作的对象及其具体实例。
稍后,我们将为对象属性实例化一个实例,并将这个新实例操作为null或消失。
代码片段:
// Class constructor
var Class = function () {
this.destroy = function (baseObject, refName) {
delete baseObject[refName];
};
};
// instanciate
var store = {
"name":"abc",
"id":2
};
console.log(store.id);
store.id = new Class();
console.log(store.id);
store.id.destroy(store, "id");
console.log(store.id);
输出:
即使store.id
仍然有一个启动,删除操作在参数(对象,实例)被传递到方法new Class()
之前并没有开始。destroy
这就是对象如何趋向于为空的方式