在Javascript中从父类调用Childs函数
嗨,我有两个JS类,如下所示在Javascript中从父类调用Childs函数,javascript,javascript-objects,Javascript,Javascript Objects,嗨,我有两个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_vali
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\u字段
这意味着其扩展的类应该调用childs函数,但它调用自己的类函数 您没有在基类的构造函数中调用this.init\u字段。您仅引用了它:
wp.hooks.addAction( 'wponion_reload_fields', this.init_fields );
要调用它,需要添加括号:
wp.hooks.addAction( 'wponion_reload_fields', this.init_fields() );
但是,由于它不返回任何内容,因此将结果作为参数传递给wp.hooks.addAction
是不正确的
在基类中,该方法被称为:init\u fields()
,但在扩展类中,该方法被称为init\u fileds()
,我想您是在问如何从子类调用父类的方法
如果是,如果子类也具有相同的名称,则从子类使用super.parentClassMethodName()
Ref:init\u字段
与init\u文件不同。拼写很重要。谢谢你的回答。我意识到我有多愚蠢:-(