javascript - 在 Javascript 中从父类调用子函数

标签 javascript javascript-objects

嗨,我有 2 个 JS 类,如下所示

class WPOnion_Field_API2 {
    constructor() {
        wp.hooks.addAction( 'wponion_reload_fields', this.init_fields );
    }

    js_settings(elem, _default) {
        return wponion.field_js_args( elem, _default );
    }

    is_valid() {
        return ( 1 >= this.elem );
    }

    init_fields() {
        console.log( 11111 );
    }
}

扩展类

class WPOnion_Field_inputmas extends WPOnion_Field_API2 {
    constructor() {
        super();
    }

    init_fileds() {
        console.log( 1 );
    }
}

let WPOFInputMask = new WPOnion_Field_inputmas();

在第一个类中,您可以看到我使用了名为 this.init_fields 这意味着它扩展的类应该调用子函数,但它调用它自己的类的函数。

最佳答案

您没有在基类的构造函数中调用 this.init_fields。您仅引用了它:

wp.hooks.addAction( 'wponion_reload_fields', this.init_fields );

调用它,您需要添加括号:

wp.hooks.addAction( 'wponion_reload_fields', this.init_fields() );

但是,由于它不返回任何内容,因此将结果作为参数传递给 wp.hooks.addAction 是不正确的。

并且,在基类中,该方法被称为:init_fields(),但在扩展类中,它被称为 init_fileds()

关于javascript - 在 Javascript 中从父类调用子函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50312665/

相关文章:

javascript - 根据值更改 td 背景颜色

javascript - 发现隐含的强制转换?

javascript - 显示我的 div 的字符串并追加

javascript - 在 Three.js 中使网格平行于 xy 平面

javascript - 根据 id 在 javascript 中的对象数组中替换特定对象

javascript - 如何启用和修复链接悬停时的预览页面?

javascript - 如何用 2 "steps": `objectVariable[step1][step2] = result;` 初始化对象变量

javascript - 是未定义还是未定义?

javascript - 当满足某些条件时,如何获取数组的长度?

javascript - 如何在 Javascript 对象中使用 Unicode 字符串键?