ExtJS 中 new 和 new Ext.create 的区别
Difference between new and new Ext.create in ExtJS
我是 ExtJS 4 的新手(使用 Ext JS4 的项目)
我的问题是'Difference new and new 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
});
我知道 new vs Ext.create(用于动态加载 - 'new' 不支持动态加载)
但是 'new Ext.create' 是什么?它是一种不应该使用的语法吗?
PS : 不熟悉发帖问题。我道歉
请告诉我这个问题是否有问题。
这不是您应该使用的语法。它似乎只是因为 Ext.create 的实施方式而导致相同的结果。但是,如果它被更改,此语法可能无法工作。 new 运算符创建一个新对象,该对象继承自 Ext.create 的原型。该原型是 Function,而不是 Ext.panel.Panel。此外,它将调用 create 的范围从 Ext 更改为这个新对象。碰巧 create 方法没有引用范围(即 "this")。 Ext.create 自己调用 new 和 returns 一个不同的对象,它是您期望的面板,因此此语句中的 new 运算符创建了一个额外的对象,该对象不是面板并且从未使用过。
我是 ExtJS 4 的新手(使用 Ext JS4 的项目)
我的问题是'Difference new and new 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
});
我知道 new vs Ext.create(用于动态加载 - 'new' 不支持动态加载)
但是 'new Ext.create' 是什么?它是一种不应该使用的语法吗?
PS : 不熟悉发帖问题。我道歉
请告诉我这个问题是否有问题。
这不是您应该使用的语法。它似乎只是因为 Ext.create 的实施方式而导致相同的结果。但是,如果它被更改,此语法可能无法工作。 new 运算符创建一个新对象,该对象继承自 Ext.create 的原型。该原型是 Function,而不是 Ext.panel.Panel。此外,它将调用 create 的范围从 Ext 更改为这个新对象。碰巧 create 方法没有引用范围(即 "this")。 Ext.create 自己调用 new 和 returns 一个不同的对象,它是您期望的面板,因此此语句中的 new 运算符创建了一个额外的对象,该对象不是面板并且从未使用过。