Я хочу начать писать лучший код, и я понял, что все, что связано с определенной функциональностью внутри объекта, является хорошей идеей.Преобразование кода в JS Object Literal Pattern
Редактировать: Я попытался взять на борт концепцию в ответе @ SoftwareEngineer171. Теперь у меня есть следующее:
var app = {
audioCtx : new(window.AudioContext || window.webkitAudioContext)(),
init : function() {
oscillator = app.audioCtx.createOscillator();
oscillator.type = 'square';
oscillator.frequency.value = 3000; // value in hertz
oscillator.start();
}
} // app object close
app.init();
Но это не работает. Может ли кто-нибудь объяснить, почему?
Я хочу использовать этот код как часть приложения, но помещается внутри литерала объекта:
var context = new AudioContext(),
gainNode = context.createGain(),
oscillator = context.createOscillator();
gainNode.connect(context.destination);
oscillator.frequency.value = 440;
oscillator.connect(gainNode);
oscillator.start();
Однако, когда я пытался, я бегу в проблемы рода упоминается here.
Я хочу, чтобы код начинался вот так:
var app = {
context : new AudioContext(),
...
}
Любая помощь, которая ценится как обычно.
Почему? Для чего? –
«* все, что связано с определенной функциональностью внутри объекта, является хорошей идеей *» - нет, это не так. По крайней мере, не в общем. – Bergi
Где еще вы собираетесь использовать любую из этих трех переменных? Это весь ваш код? Как вы думаете, что вы получите от объекта 'app'? – Bergi