Другие ответы хороши, если вы не редактируете объект по ссылке. Однако, если вы передаете объект в функцию и хотите, чтобы исходный объект также был затронут, вы можете использовать эту функцию:
function emptyObject(objRef) {
for(var key in objRef) {
if(objRef.hasOwnProperty(key)) {
delete objRef[key];
}
}
}
Это поддерживает исходную ссылку на объект и подходит для создания плагинов, когда вы управляете объектом, который предоставляется в качестве параметра. Два быстрых примера покажут, как это отличается от простого задания объекта равным {}
EX 1:
function setEmptyObject(obj) {
obj = {};
}
var a = {"name":"Tom", "site":"http://mymusi.cc"}
setEmptyObject(a);
console.log(a); //{"name":"Tom", "site":"http://mymusi.cc"}
EX 2 с использованием альтернативы emptyObject () (функция определена выше):
var a = {"name":"Tom", "site":"http://mymusi.cc"}
emptyObject(a);
console.log(a); //{}