js中的class继承怎么使用?
js中的class继承怎么使用?
父类Parent中有个fetch函数,我想再次包装下,只对入参做些修改,其他的全部继承父类,但是一直失败
class Parent {
constructor() {
}
fetch = (data) => {
console.log(1, data)
}
}
class Child extends Parent {
constructor(props) {
super(props)
}
fetch = (data) => {
if (data) {
data.name = 'test'
}
console.log(2, data)
return super.fetch(data)
}
}
Parent
是个组件fetch
是箭头函数尽量不做修改,上面这种写法会报错super.fetch is not afunction
,原因是super
不支持在箭头函数中使用,但是改成常规写法
fetch() {
}
这种方式又没法重写Parent
中的fetch
函数,请问这种情况该怎么处理?
class Child extends Parent {
constructor(props) {
super(props)
}
fetch = (data) => {
if (data) {
data.name = 'test'
}
const item = new Parent()
return item.fetch(data)
}
}
这样写可以么?
回复
1个回答
test
2024-06-23
class Parent {
constructor() {}
fetch = (data) => {
console.log(1, data);
};
}
class Child extends Parent {
constructor(props) {
super(props);
}
// 改写
fetch = ((superfetch) => (data) => {
if (data) {
data.name = "test";
}
console.log(2, data);
superfetch(data);
})(this.fetch);
}
做了修改,应该可以满足你的方式。
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容