2010-02-16 83 views
1

我正在开发一些基本的实用工具对象在JavaScript中。这些事情,如:将简单的实用对象合并到更复杂的专用对象中的最佳方式是什么?

spinner { 
// generates a spinner 
} 

dialog { 
// generates a dialog 
} 

wysiwyg { 
// generates a wysiwyg editable 
} 

etc. 

一次,我已经积累了基本效用对象的集合,我想为不同的数据集的工作创造更具体的,复杂的对象。例如,一个对象来编辑记录列表。

我想知道:将我的实用工具对象的功能整合到我的更复杂的专用对象中的最佳方式是什么?

多重继承?例如,从父对话框和微调框创建的对象editList,然后增强?或者更好的设计实践是在更复杂的对象内部生成我的实用对象的新实例吗?

在此先感谢您的帮助。

回答

3

多继承几乎从来都不是正确的答案。你想要使用的是组合。例如,如果你有一个可以有几个不同的对话框和一个所见即所得的一个复杂的UI面板,你可以这样做

function myPanel(width, height) { 
    this.saveDialog = new dialog('Save', ...); 
    this.loadDialog = new dialog('Load', ...); 
    this.editPanel = new wysywig(width, height); 

    . . . 
    var me = this; 
    // Add a Save button to trigger the save dialog; 
    this.saveButton = new button("Save", function() { me.saveDialog.display(); }); 
    this.addButton(saveButton); 
} 

由于您的更复杂的对象可能不是实际上是一个微调,或者一个对话框,而是一个以某种方式使用它们的组件,组合是这里的合适范例。

+0

谢谢。现在更清楚了。 – Travis 2010-02-16 06:10:12

相关问题