Javascript 如何在另一个JS文件中使用来自一个JS文件的类?

Javascript 如何在另一个JS文件中使用来自一个JS文件的类?,javascript,Javascript,我试图在B.js文件中使用a.js文件中的类, 我创建了一个A.js类的实例,并试图在B.js中调用它的函数,但出现了一个错误 说 未捕获的SyntaxError:无法在模块外部使用导入语句 这是代码的样子: A.js文件 B.js文件 我做错了什么?如果使用导入而不使用{},则需要使用关键字默认值。请尝试下面这样的代码- export default class A { constructor() { this.name = 'A' } getName(

我试图在B.js文件中使用a.js文件中的类, 我创建了一个A.js类的实例,并试图在B.js中调用它的函数,但出现了一个错误 说

未捕获的SyntaxError:无法在模块外部使用导入语句

这是代码的样子:

A.js文件

B.js文件


我做错了什么?

如果使用导入而不使用
{}
,则需要使用
关键字
默认值。请尝试下面这样的代码-

export default class A {
    constructor() {
        this.name = 'A'
    }
    getName() {
        return this.name;
    }
}
或者您可以像这样使用别名-

import * as A from './A.js';
在文件B.js中,将导入更改为
import A from./A.js'
从'/A.js'导入{A}

导出类或函数有两种方法:

1) 违约

2) 命名

1) 允许每个文件进行一次导出。导入的命名独立于原始导出名称

示例:

export default class A { } // A.js
import AComponent from './A'; 
export class A { } // A.js
import { A } from './A'; 
2) 允许每个文件进行多次导出。导入的名称必须与导出的名称相同

示例:

export default class A { } // A.js
import AComponent from './A'; 
export class A { } // A.js
import { A } from './A'; 

看起来您没有将代码作为模块进行评估。你是如何执行代码的?在google chrome浏览器中,虽然这是正确的,但OP当前的问题是他们没有将代码作为模块加载。虽然这是正确的,OP当前的问题是他们没有将代码作为模块加载。“或者您可以像这样使用别名”,那么他们将不得不使用
A.A
访问该类。。。