我正在尝试在 JavaScript 中创建几个自定义对象,但我不确定我是否以正确的方式处理事情。
我有两个对象:“UserInterface”和“VolumeSlider”。直到刚才,这两个对象是独立的,但通过方法耦合。我决定 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');
}
}
问题有两个:
- 这是创建我的对象和设置孩子的好方法吗?
- 我希望 UserInterface 能够响应 VolumeSlider._volumeSlider 的更改和滑动事件,而不必明确告知。我怎样才能做到这一点?