2016-02-08 178 views
4

如何使用ES6模塊分配命名空間?我想要做的例如jQuery的做,其中名稱空間是$但做它預期的ES6方式。我所有的模塊都是由不同的文件構成的,這些文件可以導出類/函數/默認值(例如export default class Pikachu)。如何將它導入另一個(主)文件,以便用戶可以使用例如Namespace.Pikachu命名空間與ES6模塊

我已經明白,它可能與命名導出有關,但我不完全確定如何。請幫忙嗎?

+1

[查看第二個例子](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import#Importing_defaults) – usandfriends

+0

您只需輸出一個帶有「皮卡丘」屬性的對象, 一如既往。但是,爲什麼你會這樣做,而不是讓用戶從任何方式(無論他選擇哪種方式)導入...... ... /皮卡丘? – Bergi

+0

@usandfriends謝謝!閱讀那篇文章時,我一定會意外跳過它! – AKG

回答

5

如果使用模塊,則不需要命名空間。

命名空間的意義在於防止定義相同名稱的不同文件之間發生衝突。

模塊通過讓callsite選擇一個名稱來給它需要的每個模塊完全消除這個問題。

你只需要導出一個簡單的對象和你想要的東西,其他文件可以將它導入到他們選擇的任何名稱。

+0

嗯,我不會說模塊完全消除了這個問題,他們只是將它從(全局)範圍級別移動到模塊標識符的命名(約定)和層次結構。 – Bergi

+0

我想我在學習這一切之間有點困惑 - 我應該知道!謝謝! – AKG