Javascript ExtJS中new和new Ext.create的区别
我刚刚接触ExtJS4(使用ExtJS4的项目) 我的问题是“新建和新建Ext.create的区别” 这些代码显示完全相同的结果(高度、宽度除外) 我知道new vs.Ext.create(对于动态加载—“new”不支持动态加载) 但是什么是“newext.create”?这是不应该使用的语法吗 附言:我不熟悉张贴问题。我道歉Javascript ExtJS中new和new Ext.create的区别,javascript,extjs,extjs4,Javascript,Extjs,Extjs4,我刚刚接触ExtJS4(使用ExtJS4的项目) 我的问题是“新建和新建Ext.create的区别” 这些代码显示完全相同的结果(高度、宽度除外) 我知道new vs.Ext.create(对于动态加载—“new”不支持动态加载) 但是什么是“newext.create”?这是不应该使用的语法吗 附言:我不熟悉张贴问题。我道歉 请告诉我这个问题是否有问题。这不是您应该使用的语法。这似乎只是因为Ext.create的实现方式才导致了相同的结果。但是,如果它被更改,此语法可能无法工作。new操作符创
请告诉我这个问题是否有问题。这不是您应该使用的语法。这似乎只是因为Ext.create的实现方式才导致了相同的结果。但是,如果它被更改,此语法可能无法工作。new操作符创建一个从Ext.create原型继承的新对象。该原型是函数,而不是Ext.panel.panel。此外,它还将调用create的范围从Ext更改为这个新对象。create方法不引用范围(即“this”)是偶然的。Ext.create自己调用new并返回一个不同的对象,该对象是您期望的面板,因此此语句中的new运算符创建了一个额外的对象,该对象不是面板,从未使用过。使用最后一个表单基本上是没有意义的,因此不,您不应该使用它。这充其量是令人困惑的。谢谢你的评论@Evantimboli我可以问一下为什么它毫无意义吗?我真的对它很好奇,我认为它毫无意义,因为用一种简单的方式new和Ext.create都创建了该类的一个实例,我的意思是继承它。如果你同时使用两者,那么同样的事情也会发生,所以两者都使用是毫无意义的。@Harshitsah谢谢你!根据评论,最好在我的项目中使用Ext.create谢谢你的评论
var panel1 = Ext.create('Ext.panel.Panel', {
title: 'use Ext.create',
html: 'use Ext.create',
height: 100,
width: 300
})
var panel2 = new Ext.panel.Panel({
title: 'use new',
html: 'use new',
height: 100,
width: 120
});
var panel3 = new Ext.create('Ext.panel.Panel', {
title: 'use new Ext.create',
html: 'use new Ext.create',
height: 100,
width: 200
});