Javascript ExtJS中new和new Ext.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操作符创

我刚刚接触ExtJS4(使用ExtJS4的项目)

我的问题是“新建和新建Ext.create的区别”

这些代码显示完全相同的结果(高度、宽度除外)

我知道new vs.Ext.create(对于动态加载—“new”不支持动态加载)

但是什么是“newext.create”?这是不应该使用的语法吗

附言:我不熟悉张贴问题。我道歉


请告诉我这个问题是否有问题。

这不是您应该使用的语法。这似乎只是因为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
});