json.stringify веб-аудио узлов возвращается пустым
Есть ли способ структурировать объект веб-аудио узла (например, gain,biquadfilter
) сохранить / восстановить его настройки?
var gainNode = audioCtx.createGain();
var str = JSON.stringify( gainNode );
console.log( str );
к сожалению str возвращает "{}"
1 ответ
включает только собственные свойства объекта, а не свойства, унаследованные от цепочки прототипов. См. Как преобразовать унаследованные объекты в JSON?Больше подробностей.
Один из способов вывести все свойства, включая унаследованные:
function flatten(obj) {
var ret = {};
for (var i in obj) {
ret[i] = obj[i];
}
return ret;
}
var gainNode = audioCtx.createGain();
var str = JSON.stringify(flatten(gainNode));
console.log(str);
Пока
JSON.stringify()
включает только собственные свойства,
for (var i in obj)
синтаксис выполняет итерацию по всем свойствам, включая унаследованные (кроме неперечислимых свойств, но
GainNode
таких нет).