Skip to content

10. ES6 modülleri

Image

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