gpt4 book ai didi

javascript - ExtJS 中 new 和 new Ext.create 的区别

转载 作者:太空宇宙 更新时间:2023-11-04 15:46:40 25 4
gpt4 key购买 nike

我刚刚接触 ExtJS 4(使用 Ext JS4 的项目)

我的问题是“new 和 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 与 Ext.create (用于动态加载 - “new”不支持动态加载)

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

PS:我不熟悉发帖问题。抱歉

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

最佳答案

这不是您应该使用的语法。似乎只是因为 Ext.create 的实现方式而导致相同的结果。但是,如果更改,此语法可能无法工作。 new 运算符创建一个继承自 Ext.create 原型(prototype)的新对象。该原型(prototype)是 Function,而不是 Ext.panel.Panel。此外,它将调用 create 的范围从 Ext 更改为这个新对象。碰巧的是,create 方法没有引用作用域(即“this”)。 Ext.create 自己调用 new 并返回一个不同的对象,即您期望的面板,因此此语句中的 new 运算符创建一个不是面板且从未使用过的额外对象。

关于javascript - ExtJS 中 new 和 new Ext.create 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43509242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com