閉包: 函數定義的做用域和函數執行的做用域 不在同一個做用域下~~~~閉包
let fs = require('fs'); // file system let school = {}; // after函數 function after(times, callback){ return function(){ //閉包函數: 函數定義的做用域和函數執行的做用域 不在同一個做用域下 if(--times === 0){ callback(); } } } let cb = after(2, function(){ console.log(school); }); fs.readFile('./name.txt', 'utf8', function(err, data){ school.name = data; cb(); }); fs.readFile('./age.txt', 'utf8', function(err, data){ school.age = data; cb(); });