因此,在尝试扩展一个类以在另一个类中使用然后将其导入另一个文件时,我遇到了一个有趣的问题。
'类test.js':
export default class MyClass {
constructor () {
this.date_created = new Date()
this.posts = new Posts()
}
}
class Posts extends Array {
add (val) {
this.push(val)
}
}
然后当我在另一个文件中创建一个新的MyClass实例(并从class-test.js导入MyClass)时,myClass.posts
属性只被视为一个数组,所以没有扩展函数add()
我认为问题是Posts类没有被MyClass类移动;但是没有施法,我不知道怎么告诉它使用那个类。
我特别沮丧的是,如果一个文件都可以正常工作:
class MyClass {
constructor () {
this.date_created = new Date()
this.posts = new Posts()
}
}
class Posts extends Array {
add (val) {
this.push(val)
}
}
var x = new MyClass('as', 'asd')
x.posts.add('asdf')
console.log(x.posts)
x.posts.add('qwer')
x.posts.add('zxcv')
console.log(x.posts)

答案 0 :(得分:0)
您是否尝试导出并导入这两个类?
'类def.js':
class MyClass {
constructor () {
this.date_created = new Date()
this.posts = new Posts()
}
}
class Posts extends Array {
add (val) {
this.push(val)
}
}
export { MyClass, Posts };
'类test.js':
import { MyClass, Posts } from 'class-def.js';
var x = new MyClass('as', 'asd')
x.posts.add('asdf')
console.log(x.posts)
x.posts.add('qwer')
x.posts.add('zxcv')
console.log(x.posts)