私はこのblogからCommonJSについて学習し、コードに関しては、以下のunderstanindトラブルを抱えています。この例ではcommonjsはエクスポート中に2つのコピーを作成し、プロセスを必要としますか?
、我々は基本的にモジュールの2つのコピーを作る:1とき 私たちは、それをエクスポートし、私たちがそれを必要とするときに1つ。さらに、 main.jsのコピーが元のモジュールから切断されました。だから でもカウンタをインクリメントすると-1を返します。カウンタ のインポートされた変数はモジュールからの変数 の変数の切断コピーです。
// lib/counter.js
var counter = 1;
function increment() {
counter++;
}
function decrement() {
counter--;
}
module.exports = {
counter: counter,
increment: increment,
decrement: decrement
};
// src/main.js
var counter = require('../../lib/counter');
counter.increment();
console.log(counter.counter); // 1
2つのコピーが作成されるのであれば、その後、各コピーは、counter
とincrement
の独自のバージョンを持っていないでしょうか?したがって、それぞれがincrement
という独自の機能に接続されますか?著者は1つのcounter
のコピー、increment
、およびmodule.exportsはであるdecrement
のでcounter.increment
がコピーを必要としconsole.log(counter.counter)
に接続されたカウンタを返すでincrement
関数を呼び出すべきではありませんvar counter = require('../../lib/counter')
内の別のコピーがあることを言っています必要なコピー?