JavaScript でいくつかのカスタム オブジェクトを作成しようとしていますが、適切な方法で作業を進めているかどうかわかりません。
「UserInterface」と「VolumeSlider」の 2 つのオブジェクトがあります。少し前まで、これら 2 つのオブジェクトは独立していましたが、メソッドによって結合されていました。代わりに、UserInterface に VolumeSlider を「持たせる」べきだと判断しました。
そう:
UserInterface = {
_volumeSlider: null,
initialize: function () {
this._volumeSlider = VolumeSlider; //TODO: Should this be a new volumeSlider();
this._volumeSlider.initialize();
//I want to setup a listener for VolumeSlider's change-volume events here.
}
}
VolumeSlider = {
_volumeSlider: null,
initialize: function () {
this._volumeSlider = $('#VolumeSlider');
var self = this;
this._volumeSlider.slider({
orientation: 'horizontal',
max: 100,
min: 0,
value: 0,
slide: function (e, ui) {
self.passVolumeToPlayer(ui.value);
},
change: function (e, ui) {
self.passVolumeToPlayer(ui.value);
}
});
},
passVolumeToPlayer: function (volume) {
if (volume != 0)
UserInterface.updateMuteButton(volume);
else
UserInterface.updateMuteButton('Muted');
}
}
質問は 2 つあります。
- これは、オブジェクトを作成して子を設定するのに適した方法ですか?
- 明示的に通知する代わりに、UserInterface が VolumeSlider._volumeSlider の変更およびスライド イベントに応答できるようにしたいと考えています。これを達成するにはどうすればよいですか?