亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將js模塊化的問題

將js模塊化的問題

翻翻過去那場雪 2018-08-10 10:09:08
(function(factory) {    if (typeof define === 'function') {        // 如果define已被定義,模塊化代碼         define('sayHello', ['jquery'], function(require, exports, moudles) {             factory(require('jquery')); // 初始化插件             return jQuery; // 返回jQuery         });     } else {        // 如果define沒有被定義,正常執行jQuery         factory(jQuery);     } } (function($) {    console.log('init', $);     $.sayHello = function() {        console.log("Hello");     }; }));我的疑問在于1.這個也屬于自執行函數的一種寫法嗎?2.factory是什么意思。3.對這個的整個流程比較模糊求大神幫助。。。。
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

答案重置:

臥槽,手機版的sf真他媽神了,誤點了刪除按鈕也沒個提示就直接把我的答案給刪了|_|

重新編輯答案:

這是一段不太典型的umd格式代碼。

umd的目標很簡單,就是希望這個庫能夠成功的運行在AMDCommonJS以及普通的<script>標簽加載的環境里。

常見的umd聲明方式如下:

if( typeof define === "function" && define.amd ){    //如果使用者的環境是`requirejs`加載器,那把該庫的具體實現通過`define`關鍵字聲明
    define(factory);
} else if( typeof module != "undefined" && typeof module.exports != "undefined" ){    //如果使用者的環境是nodejs,或者webpack,browserify等加載器,那通過commonjs的模塊方式暴露
    module.exports = factory();
} else {    //最后如果使用者就是直接在html里通過<script src="xxx">的方式引入該庫,那把該庫的內容直接掛在window對象上 
    window["Sortable"] = factory();
}

factory就是你要開發的庫的具體實現體


查看完整回答
反對 回復 2018-09-15
  • 1 回答
  • 0 關注
  • 646 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號