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таких нет).

Другие вопросы по тегам