export
export
ifadesi JavaScript modülleri oluştururken fonksiyonların, nesnelerin ve temel değerlerin dışarı aktarılmasını sağlayarak, diğer programlar tarafından import
(en-US) ifadesiyle kullanılmasını sağlar.
Bu özellik şu an için yerel olarak sadece Safari'de uygulanmıştır. Traceur Compiler, Babel veya Rollup gibi bir çok transpiler tarafından da uygulanmaktadır.
Sözdizim
export { isim1, isim2, …, isimN }; export { degisken1 as isim1, degisken2 as isim2, …, isimN }; export let isim1, isim2, …, isimN; // ayrıca var, function export let isim1 = …, isim2 = …, …, isimN; // ayrıca var, const export default ifade; export default function (…) { … } // ayrıca class, function* export default function isim1(…) { … } // ayrıca class, function* export { isim1 as default, … }; export * from …; export { isim1, isim2, …, isimN } from …; export { import1 as isim1, import2 as isim2, …, isimN } from …;
isimN
- Dışa aktarılacak belirleyici (böylece
import
(en-US) kullanılarak diğer programda içe aktarılabilir).
Açıklama
İki çeşit dışa aktarım vardır. Her biri aşağıdaki sözdizimlerden birine karşılık gelmektedir:
- İsimlendirilmiş dışa aktarım:
// önceden tanımlı bir fonksiyonu dışa aktarır export { birFonksiyon }; // bir sabiti dışa aktarır export const karekok = Math.sqrt(2);
- Varsayılan dışa aktarım (fonksiyon):
export default function() {}
- Varsayılan dışa aktarım (sınıf):
export default class {}
İsimlendirilmiş dışa aktarımlar birden fazla değeri dışarı aktarmak için kullanışlıdır. İçe aktarım sırasında, aynı isimle ve buna karşılık gelen değeri ile kullanılabilecektir.
Varsayılan dışa aktarımla ilgili olarak, her bir modül için sadece bir adet varsayılan dışa aktarım vardır. Varsayılan dışa aktarım bir fonksiyon, bir sınıf, bir nesne veya başka bir şey olabilir. Dışa aktarımı en basit olacağından dolayı bu değer dışa aktarılan "ana" değer olarak nitelendirilecektir.
Varsayılanların dışa aktarımı: Aşağıdaki sözdizimi varsayılan dışa aktarımı içe aktaran modülde gerçekleşmeyecektir:
export * from …;
Eğer varsayılanı dışa aktarmak isterseniz, aşağıdakini yazınız:
import mod from "mod"; export default mod;
Örnekler
İsimlendirilmiş dışa aktarımları kullanmak
Modül içerisinde, aşağıdaki kodu kullanabiliriz:
// modül "benim-modulum.js"
function kup(x) {
return x * x * x;
}
const deger = Math.PI + Math.SQRT2;
export { kup, deger };
Bu yolla, başka bir kod içerisinde (karşılaştır import
), şunu yapabiliriz:
import { kup, deger } from 'benim-modulum';
console.log(kup(3)); // 27
console.log(deger); // 4.555806215962888
Varsayılanın dışa aktarımının kullanılması
Eğer modülümüz için tek bir değeri dışa aktarmak istiyorsak veya bir son değere sahip olmak istiyorsak, varsayılan dışa aktarımı kullanabiliriz:
// modül "benim-modulum.js"
export default function kup(x) {
return x * x * x;
}
Sonra, başka bir kod içerisinde, varsayılan dışa aktarımı içe aktarmak anlaşılır olacaktır:
import kup from 'benim-modulum';
console.log(kup(3)); // 27
Dikkate alınız ki var
, let
veya const
anahtar kelimelerini export default
ile kullanamazsınız.
Spesifikasyonlar
Spesifikasyon | Durum | Açıklama |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Exports' in that specification. |
Standard | İlk tanım. |
ECMAScript (ECMA-262) The definition of 'Exports' in that specification. |
Living Standard |
Tarayıcı uyumluluğu
Özellik | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Temel destek | 61 (60 w/ flag) | No support (54 w/ flag) | No support (15 w/flag) | No support | 10.1 |
Özellik | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Temel destek | No support | No support | No support | No support | No support | 10.3 |
Ayrıca bakınız
import
(en-US)- ES6 in Depth: Modules, Hacks blog post by Jason Orendorff
- Axel Rauschmayer's book: "Exploring JS: Modules"