gpt4 book ai didi

javascript - 有没有类似 initComponent 的 Ext.create 方法?

转载 作者:行者123 更新时间:2023-11-30 10:40:09 26 4
gpt4 key购买 nike

当我使用 Ext.create("...") 时,我想做一些初始化。该对象既简单又小,我不想定义它,但它需要一些来自 mixin 的方法(在调用组件创建之前)...我该怎么做?

最佳答案

标准实例覆盖


  • 通常,我们会在 Ext.create() 之后使用 Ext.override() 将覆盖应用于类的特定实例(参见 docs ) :

    var myObj = Ext.create('Ext.some.Component', {
    ...
    });

    Ext.override(myObj, {
    myMethod: function() {
    // Do something.
    this.callParent(arguments); // From Ext.some.Component class.
    // Do something else.
    }
    });
  • this.callParent(arguments) 正常工作创建的覆盖

    • 显式地通过 Ext.override()
    • 隐式通过 Ext.define()

特例:覆盖initComponent


  • 由于 initComponent 方法在 Ext.create() 的执行过程中 被调用,我们必须在 中覆盖它>Ext.create。为了访问原始方法,我们必须使用变通方法来访问重写的方法:

    var myObj = Ext.create('Ext.some.Component', {
    initComponent: function() {
    // Do something.

    // Get a reference to the class.
    var myClass = Ext.getClass(this);

    // Apply the overridden method from the class' prototype.
    myClass.prototype.initComponent.apply(this, arguments);

    // Do something else.
    }
    });

关于javascript - 有没有类似 initComponent 的 Ext.create 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11517280/

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