摘要:模塊標(biāo)準(zhǔn)有三個全局變量和。模塊中有兩種方式提供對外的接口,一種是,一種是使用進(jìn)行返回。規(guī)范中,函數(shù)同樣有一個公有屬性。由于和都可以使用來定義對外接口,故可以合并成一句代碼。
模塊標(biāo)準(zhǔn) CommonJS
CommonJS 有三個全局變量 module、exports 和 require。但是由于 AMD 也有 require 這個全局變量,故不使用這個變量來進(jìn)行檢測。
如果想要對外提供接口的話,可以將接口綁定到 exports (即 module.exports) 上。
function MyModule() { // ... } if(typeof module !== `undefined` && typeof exports === `object`) { module.exports = MyModule; }CMD
CMD 規(guī)范中定義了 define 函數(shù)有一個公有屬性 define.cmd。
CMD 模塊中有兩種方式提供對外的接口,一種是 exports.MyModule = ...,一種是使用 return 進(jìn)行返回。
AMDAMD 規(guī)范中,define 函數(shù)同樣有一個公有屬性 define.amd。
AMD 中的參數(shù)便是這個模塊的依賴。那么如何在 AMD 中提供接口呢?它是返回一個對象,這個對象就作為這個模塊的接口,故我們可以這樣寫:
function MyModule() { // ... } if(typeof define === `function` && define.amd) { define(function() { return MyModule; }); }總結(jié)
我們除了提供 AMD 模塊接口,CMD 模塊接口,還得提供原生的 JS 接口。
由于 CMD 和 AMD 都可以使用 return 來定義對外接口,故可以合并成一句代碼。
一個直接可以用的代碼如下:
;(function(){ function MyModule() { // ... } var moduleName = MyModule; if (typeof module !== "undefined" && typeof exports === "object") { module.exports = moduleName; } else if (typeof define === "function" && (define.amd || define.cmd)) { define(function() { return moduleName; }); } else { this.moduleName = moduleName; } }).call(this || (typeof window !== "undefined" ? window : global);
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/85985.html
摘要:它就是一套兼容方案,目前兼容的有以及原生支持。返回值問題在第一次使用時,。具體是什么意義呢的返回值,其實就是插件提供的對外接口,而實際上,就是一個對象。而在環(huán)境下,只需要將這個返回值賦予即可完成該模塊的接口。 有更新,請到github上看源碼 什么是OMD 在node.js流行起來之前,javascript的開發(fā)方式都是函數(shù)式的順序依賴關(guān)系,直到node火起來。CommonJS其實首先...
摘要:示例小明小明小明小明小花小花姓名價格基于上面的方法我寫了個簡易的基于的自動生成表格的插件,可以合并單元格。對于兼容這些規(guī)范,寫法也很多,希望多多指教完整代碼 事情是這樣的,我寫了一個基于jQuery的插件,在傳統(tǒng)的開發(fā)模式中,我們需要現(xiàn)在頁面引入jQuery.js,然后在引入我們的插件,我們的插件才能使用。但是隨著webpack的興起,我不在想一步步的寫入script標(biāo)簽,寫著一堆的s...
摘要:所有依賴這個模塊的語句,都定義在一個回調(diào)函數(shù)中,等到所有依賴加載完成之后前置依賴,這個回調(diào)函數(shù)才會運行。如果將前面的代碼改寫成形式,就是下面這樣定義了一個文件,該文件依賴模塊,當(dāng)模塊加載完畢之后執(zhí)行回調(diào)函數(shù),這里并沒有暴露任何變量。 模塊化是我們?nèi)粘i_發(fā)都要用到的基本技能,使用簡單且方便,但是很少人能說出來但是的原因及發(fā)展過程。現(xiàn)在通過對比不同時期的js的發(fā)展,將JavaScript模...
摘要:一些有用的一些有用的,包括轉(zhuǎn)換小箭頭三角形媒體查詢等中文指南是當(dāng)下最熱門的前端資源模塊化管理和打包工具。 nodejs 入門 nodejs 入門教程,大家可以在 github 上提交錯誤 2016 年最好用的表單驗證庫 SMValidator.js 前端表單驗證工具分享 淺談前端線上部署與運維 說到前端部署,可能大多數(shù)前端工程師在工作中都是使用的公司現(xiàn)成的部署系統(tǒng),與SRE對接、一起完...
摘要:一些有用的一些有用的,包括轉(zhuǎn)換小箭頭三角形媒體查詢等中文指南是當(dāng)下最熱門的前端資源模塊化管理和打包工具。 nodejs 入門 nodejs 入門教程,大家可以在 github 上提交錯誤 2016 年最好用的表單驗證庫 SMValidator.js 前端表單驗證工具分享 淺談前端線上部署與運維 說到前端部署,可能大多數(shù)前端工程師在工作中都是使用的公司現(xiàn)成的部署系統(tǒng),與SRE對接、一起完...
閱讀 881·2021-11-15 11:37
閱讀 3619·2021-11-11 16:55
閱讀 3284·2021-11-11 11:01
閱讀 1008·2019-08-30 15:43
閱讀 2755·2019-08-30 14:12
閱讀 695·2019-08-30 12:58
閱讀 3397·2019-08-29 15:19
閱讀 2037·2019-08-29 13:59