第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何讓自己寫(xiě)的代碼支持commonjs規(guī)范?

如何讓自己寫(xiě)的代碼支持commonjs規(guī)范?

滄海一幻覺(jué) 2018-08-07 13:13:24
假如我有一個(gè)es.js 這個(gè)庫(kù)一開(kāi)始是個(gè)空對(duì)象,我讓它支持commonjs規(guī)范,封裝了一下。然后我希望自己慢慢寫(xiě)插件 比如 es.Klass.js es.validate.js,這些插件也想用commonjs規(guī)范封裝,但是插件和插件之間有可能還有復(fù)用關(guān)系,應(yīng)該怎么辦呢?就好比es.validate會(huì)用到es.Klass然后我寫(xiě)代碼的時(shí)候必須是 var es = require('es');var Klass = require('es.Klass');var Validate = require('es.Validate');//上面三行代碼該死的順序還不能顛倒 new Validate();我希望可以直接寫(xiě)成var Validate = require('es.Validate');new Validate();請(qǐng)問(wèn)如何實(shí)現(xiàn)代碼的封裝????
查看完整描述

1 回答

?
人到中年有點(diǎn)甜

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊

無(wú)語(yǔ)。你這插件明明用的AMD的規(guī)范,為什么標(biāo)題要說(shuō)是commonjs, - -!

借助requirejs,聲明依賴(lài)關(guān)系就行了。如果兩個(gè)模塊引入順序不同會(huì)造成不同的結(jié)果,那么一般來(lái)說(shuō)是依賴(lài)關(guān)系造成的。

比如我要編寫(xiě)一個(gè)叫做demo.js的插件,demo1.js與demo2.js都是它的模塊

// demo1.js define(function() {    return {    
        xxxx: 'hello'
    }
})
// demo2.js 依賴(lài)于demo1.jsdefine(function() {    var d1 = require('./demo1.js');    
    return {        message: d1.xxxx + ' world!'
    }
})
// demo.js 依賴(lài)于demo2.js// 聲明依賴(lài)的另外一種寫(xiě)法define(['./demo2.js'], function(d2) {    return {    
        getMessage: function() {            return d2.message
        }
    }
})

也可以在代碼中這樣寫(xiě)

// commonjsif(typeof module !== 'undefined' && module.exports) {    module.exports = myPlugin;
}// amd requireelse if(typeof define !== 'undefined' && define.amd) {
    define('myPlugin', [], function() {        return myPlugin;
    })
}else {    window.myPlugin = myPlugin
}


查看完整回答
反對(duì) 回復(fù) 2018-09-20
  • 1 回答
  • 0 關(guān)注
  • 936 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)