而用tsc轉(zhuǎn)譯以后,他就會(huì)變成上面的node.js語(yǔ)法。
什么是Typescript? OK,以后有時(shí)間再深入吧? (聽(tīng)起來(lái)怎么這么耳熟?)
我們準(zhǔn)備在main.js中導(dǎo)入和使用greetings.js中的所有函數(shù)。
require
是nodejs用來(lái)導(dǎo)入模塊的關(guān)鍵詞。想象一下require的定義如下 (怎么又是想象?)
var require =function(path){ //.... return module.exports;};
//main.jsvar greetings = require("./greetings");
想象一下以上代碼等價(jià)于你的代碼做了以下事情:
//main.jsvar greetings = { sayHelloInEnglish = function() { return "Hello"; }; sayHelloInSpanish = function() { return "Hola"; };};
//"Hello"greetings.sayHelloInEnglish();// "Hola"greetings.sayHelloInSpanish();
警告:
正因?yàn)閚odejs的這種模塊機(jī)制,如果不小心給module.exports重新賦給了一個(gè)全新的對(duì)象,會(huì)導(dǎo)致不可預(yù)期的問(wèn)題。
如:
//greetings.js//var exports=module.exports = {};exports.sayHelloInEnglish = ...exports.sayHelloInSpanish = .../* 重新賦值module.exports*/module.exports= "Bonjour";
這時(shí)候,在main.js中我們?cè)谡{(diào)用`greetings.sayHelloInEnglish()'就會(huì)出錯(cuò)。
下一步:進(jìn)階研究require()的工作原理。
聯(lián)系客服