首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何导入类的静态成员?

问如何导入类的静态成员?
EN

Stack Overflow用户
提问于 2017-08-11 16:37:57
回答 2查看 1.4K关注 0票数 3

我试图通过使用标准导入语法将类的静态成员导入到文件中。给出背景:

析构工作在类的静态方法上:

代码语言:javascript
复制
class Person {
    static walk() {
        console.log('Walking');
    }
}

let {walk} = Person;
console.log(walk); // walk function

然而,我认为导入的行为就像破坏任务一样。如果这是真的,那么我希望下面的工作。但是,当我尝试导入walk方法时,它只是返回为undefined

通过进口破坏,为什么不起作用?

person.js

代码语言:javascript
复制
export default class Person {
    static walk() {
        console.log('Walking');
    }
}

walker.js

代码语言:javascript
复制
import {walk} from './person';
console.log(walk); // undefined

由于这似乎不起作用,我如何将静态方法从一个类导入到另一个模块?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-11 16:48:43

export default可以与ES6的正常出口混合使用。例如:

代码语言:javascript
复制
// module-a.js
export default a = 1;
export const b = 2;

// module-b.js
import a, { b } from "./module-a";
a === 1;
b === 2;

这意味着导入括号与析构器分配不一样。

实际上,在ES6规范中,您想要实现的是不可能的。最好的方法是在导入之后使用析构。

代码语言:javascript
复制
import Person from "./person";
const { walk } = Person;
票数 5
EN

Stack Overflow用户

发布于 2017-08-11 16:50:01

您使用的语法实际上是一个命名导入,而不是一个析构赋值,尽管它们看起来很相似。在ES6中没有破坏导入。您所能做的就是向下一行添加一个析构赋值,但请记住,当导入是循环的时,这会中断。

代码语言:javascript
复制
import Person from './person';
const { walk } = Person;
console.log(walk);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45639934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档