我正在尝试删除使用原型(prototype)对象创建的对象。删除似乎不起作用。删除调用后,该对象仍然存在...... 该对象是通过调用创建的:
utils.createWithProto = function (o) {
function F() {}
F.prototype = o;
return new F();
};
下面是用来创建对象的。
// Create a new object using DashboardControl as the prototype
// A unique ID is set in newControl.config.controlId if it was not passed in config
var proto = new DashboardControl(config);
var newControl = Utils.createWithProto(proto);
// Create a collection of Volume models
newControl.volumeCollection = new VolumeCollection();
newControl.volumeCollection.init(newControl.config);
// Create a view
newControl.volumeView = new VolumeView(newControl, newControl.volumeCollection);
我在 volumeCollection 和 volumeView 项上手动调用 delete,效果很好。但是作为最后一步删除对象本身是行不通的:
deleteObject: function(object) {
object.volumeCollection.stop();
delete object.volumeCollection;
object.volumeView.stop();
delete object.volumeView;
//delete object.config;
delete object.prototype;
delete object;
object = null;
}
我该如何删除这个派生对象?
最佳答案
delete
只会删除对象的属性。如果您想删除一个变量 的值,那么让它超出范围或为其分配一个新值。
一旦引用一个对象的所有属性和变量都消失了,该对象将被垃圾回收。
关于javascript - 如何删除带有原型(prototype)的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16944930/