Open2
仕事、復習
CommonJS (Node.js)のimport, export
インポート方法: require
エクスポート方法: module.export, export
module.exportとexportsの違い
exports(推奨されていない)
感覚的にいうと、1つのobjectとしてrequireされた後、プロパティのようにexportsしたobjectにアクセスできる。
util.js
exports.sayAdd = function(a, b) {
say(a + b);
}
exports.saySubtract = function(a, b) {
say(a - b);
}
say = function(word) {
console.log(word);
}
main.js
var util = require('./util');
util.sayAdd(1, 2); // 3
util.saySubtract(2, 1); //1
util.say // error. util.say is not a function
(コードはQiitaの記事より引用)
module.exports(推奨)
CommonJS モジュールは Node.js のグローバル変数 module を使って変数や関数などをエクスポートします。 CommonJS モジュールでは module.exports プロパティに代入されたオブジェクトが、その JavaScript ファイルからエクスポートされます(JavaScript Primerより引用)。
movie.js
// コンストラクタ
var Movie = function(title) {
this.title = title;
}
Movie.prototype.sayTitle = function() {
say(this.title);
}
say = function(word) {
console.log(word);
}
module.exports = Movie;
main2.js
var Movie = require('./movie');
var movieA = new Movie('Star Wars');
movieA.sayTitle(); //Star Wars
var movieB = new Movie('Mad Max');
movieB.sayTitle(); // Mad Max
movieB.say(); // error. movieB.say is not a function
(コードはQiitaの記事より引用)
ES6のimport, export
インポート方法:
import { a } from "module"
import { * as a } from "module"
import a from "module"
エクスポート方法:
export
export default
import { * as a } from "module"
はaを現在のスコープに加えてmodule.jsのファイルのmoduleからのexportを全て含める。
module.js
export function sayAdd(a, b){
say(a+b);
}
export function saySubtract = function(a, b) {
say(a - b);
}
say = function(word) {
console.log(word);
}
main.js
import * as myModule from "module"
myModule.sayAdd(1, 2) // 3
myModule.sayAdd(2, 1) // 1