Pau*_*aul 14 model-view-controller extjs
这些片段之间有什么区别?:
constructor: function(config) {
this.initConfig(config);
}
constructor: function(config) {
this.callParent(arguments);
}
constructor: function(config) {
this.superclass.constructor.call(this, config);
}
Run Code Online (Sandbox Code Playgroud)
并且,如何覆盖其他方法而不是constructor
?
Mat*_*eer 26
第二个和第三个片段在功能上是等效的.callParent
只是一种更简洁,更简单的方法来调用父项的功能,而不是通过superclass
属性.
第一个例子完全不同.首先,它不会调用父的构造函数.这通常是坏消息.基类通常有一些需要完成的初始化,而忘记为构造函数(和initComponent)调用父类是bug的常见来源.
initConfig
是一种方便的方法,将:
这与调用父构造函数完全不同.调用父构造函数的工作完全取决于它编写的内容.有些人会使用initConfig
,有些人不会,有些人会做类似initConfig所做的事情,但需要手动.
它没有必要使用initConfig
,有时甚至是危险的.但这完全是另一个故事(对于Ext 4.1,initConfig看起来有希望无害,并且不包含与4.0相同的危险副作用)
只是要指出.在第二个和第三个片段中,不需要构造函数.如果你的构造函数只调用父的构造函数,那么你可以完全抛弃你的构造函数.