日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

CommonJS规范(转)

發布時間:2025/3/20 javascript 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CommonJS规范(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

概述

CommonJS是服務器端模塊的規范,Node.js采用了這個規范。

根據CommonJS規范,一個單獨的文件就是一個模塊。加載模塊使用require方法,該方法讀取一個文件并執行,最后返回文件內部的exports對象。下面就是一個簡單的模塊文件example.js。

console.log("evaluating example.js"); var invisible = function () {console.log("invisible"); } exports.message = "hi"; exports.say = function () {console.log(message); }

使用require方法,加載example.js。

var example = require('./example.js');

這時,變量example就對應模塊中的exports對象,于是就可以通過這個變量,使用模塊提供的各個方法。

{message: "hi",say: [Function] }

require方法默認讀取js文件,所以可以省略js后綴名。

var example = require('./example');

js文件名前面需要加上路徑,可以是相對路徑(相對于使用require方法的文件),也可以是絕對路徑。如果省略路徑,node.js會認為,你 要加載一個核心模塊,或者已經安裝在本地 node_modules 目錄中的模塊。如果加載的是一個目錄,node.js會首先尋找該目錄中的 package.json 文件,加載該文件 main 屬性提到的模塊,否則就尋找該目錄下的 index.js 文件。看一個復雜一點的例子。

// foobar.js function foobar(){this.foo = function(){console.log('Hello foo');}this.bar = function(){console.log('Hello bar');} } exports.foobar = foobar;

調用該模塊的方法如下:

var foobar = require('./foobar').foobar, test = new foobar(); test.bar(); // 'Hello bar'

有時,不需要exports返回一個對象,只需要它返回一個函數。這時,就要寫成module.exports。

module.exports = function () {console.log("hello world") }

AMD規范與CommonJS規范的兼容性

CommonJS規范加載模塊是同步的,也就是說,只有加載完成,才能執行后面的操作。AMD規范則是非同步加載模塊,允許指定回調函數。由于 Node.js主要用于服務器編程,模塊文件一般都已經存在于本地硬盤,所以加載起來比較快,不用考慮非同步加載的方式,所以CommonJS規范比較適 用。但是,如果是瀏覽器環境,要從服務器端加載模塊,這時就必須采用非同步模式,因此瀏覽器端一般采用AMD規范。

AMD規范使用define方法定義模塊,下面就是一個例子:

define(['package/lib'], function(lib){ function foo(){lib.log('hello world!');} return {foo: foo}; });

AMD規范允許輸出的模塊兼容CommonJS規范,這時define方法需要寫成下面這樣:

define(function (require, exports, module){var someModule = require("someModule");var anotherModule = require("anotherModule"); someModule.doTehAwesome();anotherModule.doMoarAwesome();exports.asplode = function (){someModule.doTehAwesome();anotherModule.doMoarAwesome();}; });

參考鏈接

Addy Osmani, Writing Modular JavaScript With AMD, CommonJS & ES Harmony

轉載自:http://javascript.ruanyifeng.com/nodejs/commonjs.html#toc0

?

總結

以上是生活随笔為你收集整理的CommonJS规范(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美日韩蜜桃 | 欧美 日韩 国产 亚洲 色 | 老司机精品视频在线播放 | 精品一久久 | 波多野结衣在线看 | 丰满少妇xbxb毛片日本 | 亚洲国产精品无码久久久 | 国产suv精品一区二区60 | 蜜臀一区二区三区精品免费视频 | 白浆四溢 | 午夜亚洲视频 | 伊人黄色片| 丰满人妻一区二区三区四区 | 亚洲精品国产一区 | 97xxxx| 国产黄色自拍视频 | www.超碰97.com | 欧美午夜激情影院 | av黄色在线看 | 欧美色图亚洲视频 | 黄色大片网站在线观看 | 亚洲国产日韩a在线播放性色 | 国产性一乱一性一伧一色 | www婷婷av久久久影片 | 三级小视频在线观看 | 国产又粗又黄又爽视频 | 在线啪| 人人射人人射 | 五月激情啪啪 | 刘亦菲毛片 | 亚洲97视频 | 一区二区在线观看免费 | 君岛美绪在线 | www免费视频 | 亚洲色图视频网站 | 特淫毛片 | 九色首页 | 91成人免费电影 | 精品国产一区二区三区日日嗨 | 免费黄色一区二区 | 美女张开双腿让男人捅 | 亚洲品质自拍 | 少妇人妻互换不带套 | 美女网站黄频 | 免费看的av | 国产精品无码专区 | 不卡国产在线 | 黄a网站| 成人毛片视频在线观看 | 肉色欧美久久久久久久免费看 | www欧美色| 国产精品又黄又爽又色无遮挡 | 性猛交娇小69hd | 蜜臀久久99精品久久久久久 | 成人免费毛片东京热 | 午夜aaa片一区二区专区 | 国产精品偷伦视频免费看 | 亚洲天堂高清 | 亚洲欧洲精品在线 | 中文字幕人妻一区二区三区在线视频 | 女人扒开屁股让我添 | 欧美少妇一区二区三区 | 成人毛片网 | 欧洲成人精品 | 黄色aa视频| 国产视频中文字幕 | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲欧洲视频在线观看 | av一区免费 | 97人妻精品视频一区 | 日韩欧美不卡 | 在线天堂6 | 在线观看国产一区二区三区 | 成人依人| 好吊妞这里只有精品 | 亚洲精品久久久久久国产精华液 | 亚洲成人激情视频 | 日韩欧美在线视频 | 伦理欧美| 精品国产一区二区在线 | 无遮挡裸光屁屁打屁股男男 | 国产女人18毛片水真多18精品 | 国产精品一级片在线观看 | 欧美一级激情 | 日b视频在线观看 | 亚洲欧美一区二区三区孕妇 | 国产又大又粗又硬 | 欧美日韩国产在线观看 | 一级伦理农村妇女愉情 | 免费观看国产精品视频 | 伊人色爱| 看日本黄色录像 | 日本一级大片 | 午夜影院色 | 欧美激情999 | 污污视频在线免费观看 | 精品资源成人 | 嘿咻视频在线观看 | 久久e热|