Javascript 如果在ExtJs类原型中定义了构造函数,则obj.get函数将失败
我是ExtJs世界的新手,从ExtJS4开始,使用“学习ExtJS4”一书 这是我正在玩的代码片段Javascript 如果在ExtJs类原型中定义了构造函数,则obj.get函数将失败,javascript,extjs,extjs4,Javascript,Extjs,Extjs4,我是ExtJs世界的新手,从ExtJS4开始,使用“学习ExtJS4”一书 这是我正在玩的代码片段 你能帮我弄明白这是怎么回事吗 必须调用父构造函数。将this.callParent(arguments)添加到构造函数重写中。请详细说明构造函数定义影响obj创建的原因。或者,您可以共享链接,我可以参考该链接了解核心内容。您正在扩展Ext.data.Model,并且它已经有一个构造函数,因此在不调用父级的情况下,会丢失很多功能。请参见备注:模型构造函数接受更多参数,因此正确的调用是this.ca
你能帮我弄明白这是怎么回事吗
必须调用父构造函数。将
this.callParent(arguments)
添加到构造函数重写中。请详细说明构造函数定义影响obj创建的原因。或者,您可以共享链接,我可以参考该链接了解核心内容。您正在扩展Ext.data.Model
,并且它已经有一个构造函数,因此在不调用父级的情况下,会丢失很多功能。请参见备注:模型构造函数接受更多参数,因此正确的调用是this.callParent(arguments)-我已相应地更正了答案。
Ext.define("MyApp.Category",{
height : 40,
extend : "Ext.data.Model",
fields : [
"id",
"name",
"description"
],
constructor : function(config){
console.log("Config Dump \n");
console.dir(this);
//Ext.apply(this, config);
}
});
var category = Ext.create("MyApp.Category",{
id : 1,
name : "Entertainment",
description : "Expenses to have some fun"
});
console.log("this is after instantiation..");
console.debug(category);
console.log(category.get("name"));
// above line fails gives error - Uncaught TypeError: Cannot read property 'name' of undefined
// but if we remove construction defination from class prototype , .get function works very well
console.log(category.get("description"));