10. ES6 modülleri

ES6 modülleri, bağımsız ve yeniden kullanılabilir modüller halinde yapılandırılmış JavaScript uygulamaları oluşturmaya olanak tanır.
10.1. [import-01, export-01] komut dosyaları
[import-01] komut dosyası, [export-01] modülünü kullanacaktır. Bu modül şu şekilde tanımlanmıştır:
// isimsiz bir nesnenin varsayılan olarak dışa aktarılması
export default {
data: 2,
do() {
console.log(this.data);
}
};
Açıklamalar
- [2-7] satırları, [data, do] özelliklerine sahip isimsiz bir nesne tanımlar;
- 2. satır: [export default] komutu bu nesneyi dışa aktarır. Böylece bu nesne içe aktarılabilir;
[export-01] modülü, [import-01] komut dosyası tarafından şu şekilde kullanılır:
''use strict';
// varsayılan olarak dışa aktarılan bir nesnenin içe aktarılması
import export01 from './export-01';
// bu nesnenin kullanımı
export01.do();
// varsayılan olarak dışa aktarılan bir nesne herhangi bir adla içe aktarılabilir
import data from './export-01';
console.log(data.data);
Açıklamalar
- 3. ve 7. satırlar, [export-01] modülü tarafından varsayılan olarak dışa aktarılan nesneyi iki farklı adla içe aktarır;
- bir nesne içe aktarıldıktan sonra, sanki komut dosyasında yerel olarak tanımlanmış gibi kullanılabilir;
Çalıştırma
[Running] C:\myprograms\laragon-lite\bin\nodejs\node-v10\node.exe -r esm "c:\Data\st-2019\dev\es6\javascript\modules\import-01.js"
2
2
10.2. [import-02, export-02] komut dosyaları
Bu komut dosyaları, adlandırılmış bir nesnenin dışa aktarılmasını gösterir.
[export-02] komut dosyası şöyledir:
// adlandırılmış bir nesnenin varsayılan olarak dışa aktarılması
const data = {
data: 2,
do() {
console.log(this.data);
}
};
// dışa aktarma
export default data;
- 9. satır: [data] nesnesi dışa aktarılır;
Dışa aktarılan nesnenin adlandırılmış olup olmaması, içe aktarma işlemini etkilemez. [import-02] komut dosyası şöyledir:
'use strict';
// varsayılan olarak dışa aktarılan bir nesnenin içe aktarılması
import module1 from './export-02';
// bu nesnenin kullanımı
module1.do();
// varsayılan bir dışa aktarımı herhangi bir adla içe aktarabiliriz
import module2 from './export-02';
console.log(module2.data);
Çalıştırma
[Running] C:\myprograms\laragon-lite\bin\nodejs\node-v10\node.exe -r esm "c:\Data\st-2019\dev\es6\javascript\modules\import-02.js"
2
2
10.3. [import-03, export-03] komut dosyaları
Bir modül birden fazla öğeyi dışa aktarabilir.
[export-03] komut dosyası şu şekildedir:
// çoklu dışa aktarmalar
// nesne dışa aktarma
const data = {
data: 2,
do() {
console.log(this.data);
}
};
// dışa aktarma işlevi
export { data };
function doSomething() {
console.log("doSomething");
}
export { doSomething };
Açıklamalar
- 10. ve 14. satırlar: iki öğenin dışa aktarımı. Bir öğenin dışa aktarımı [export {élément}] sözdizimi ile yapılır;
[import-03] komut dosyası, [export-03] modülünü şu şekilde kullanır:
'use strict';
// bir modülün içe aktarılması [export03]
import {data, doSomething} from './export-03';
// ithalatların kullanımı
data.do();
doSomething();
// başka bir yazım şekli
import * as module from './export-03';
// ithalatın kullanımı
console.log(module.data);
module.doSomething();
- 3. satır: [imports] komutları, dışa aktarılan nesnelerin tam adlarıyla oluşturulur;
- 8. satır: Dışa aktarılan tüm nesneler, (burada [module] olarak adlandırılan) bir nesneye içe aktarılabilir;
Çalıştırma
[Running] C:\myprograms\laragon-lite\bin\nodejs\node-v10\node.exe -r esm "c:\Data\st-2019\dev\es6\javascript\modules\import-03.js"
2
doSomething
{ data: 2, do: [Function: do] }
doSomething