嗨,我有 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/