Javascript 重构的最佳方式是什么;“时间依赖性”;实例方法的定义?
例如,假设在视图类中,我们需要实例化一些UI组件,然后填充字段。比如:Javascript 重构的最佳方式是什么;“时间依赖性”;实例方法的定义?,javascript,refactoring,Javascript,Refactoring,例如,假设在视图类中,我们需要实例化一些UI组件,然后填充字段。比如: var View = function() { this._initUI(); this._populateFields(); }; View.prototype = { _initUI: function() { this.textField = new TextField(); this.comboBox = new Combobox(); }, _populateFields:
var View = function() {
this._initUI();
this._populateFields();
};
View.prototype = {
_initUI: function() {
this.textField = new TextField();
this.comboBox = new Combobox();
},
_populateFields: function() {
this.textField.setText('foo');
this.comboBox.setVal('bar');
}
};
这听起来不太对劲,因为您必须在\u populateFields
之前调用\u initUI
,而且\u initUI
将创建一些实例变量,这些变量稍后将由\u populateFields
使用
您认为更好的方法是什么?修复原型以进行初始化?如果尚未调用initUI,是否引发异常?有很多方法可以做到这一点。你说修复原型来进行初始化是什么意思?你是说修好构造器?与中一样,基本上直接将
\u initUI
拉入构造函数?如果是这样,当您需要初始化一个非平凡的UI视图时,这可能不是一个很好的选择。您不需要拉入代码,只需调用init即可。在任何情况下,都有很多方法可以确保一个对象被正确初始化。这个问题似乎是离题的,因为堆栈溢出是针对关于使用明确答案编码的特定问题。这更适用于codereview.stackexchange.com,也可能适用于programmers.stackexchange.com,后者用于讨论高级设计概念和最佳实践。@adininbar这是一个很好的观点,这更多的是一个最佳实践问题,而不是“我如何做到这一点”问题。谢谢,我会再贴上去的。