一:操作數(shù)組時,下標(biāo)不支持變量的解決辦法
作者:Zuozuo ,來自授權(quán)地址
但是在一般情況下,我們需要set的一個動態(tài)數(shù)組中的值,下標(biāo)是隨時變化的。 但是在set的時候必須說明【】下標(biāo)是0-9的數(shù)字形式,而發(fā)送到服務(wù)器的時候卻又是以字符串的形式發(fā)送。 因此,如果在其中使用變量,會被認(rèn)為下標(biāo)不是數(shù)字而報錯不能正常運行。 如果使用如下的形式,又無法動態(tài)的改變前端的渲染數(shù)據(jù)。
解決方法如下。
在改變該數(shù)組后,重新把該數(shù)組發(fā)送到前端進(jìn)行渲染。 二:module.exports和exports的區(qū)別分享者:呂周坤,來自授權(quán)地址 微信小程序中module.exports與exports的用法可以查看下面官方提供的文檔,使用起來還是比較簡單方便的,但時對于這兩者的區(qū)別解釋的不是很明白。 微信小程序官方文檔--框架--邏輯層--模塊化.png 為了更好的理解 exports 和module.exports 的關(guān)系,我們先來補點 js 基礎(chǔ)。示例:
運行 app.js 結(jié)果為:
解釋一下: a 是一個對象,b 是對 a 的引用,即 a 和 b 指向同一個對象,即 a 和 b 指向同一塊內(nèi)存地址,所以前兩個輸出一樣。 當(dāng)對 b 作修改時,即 a 和 b 指向同一塊內(nèi)存地址的內(nèi)容發(fā)生了改變,所以 a 也會體現(xiàn)出來,所以第三四個輸出一樣。 當(dāng)對 b 完全覆蓋時,b 就指向了一塊新的內(nèi)存地址(并沒有對原先的內(nèi)存塊作修改),a 還是指向原來的內(nèi)存塊,即 a 和 b 不再指向同一塊內(nèi)存,也就是說此時 a 和 b 已毫無關(guān)系,所以最后兩個輸出不一樣。 明白了上述例子后,我們進(jìn)入正題。我們只需知道三點即可知道exports 和module.exports 的區(qū)別了: exports 是指向的module.exports 的引用; module.exports 初始值為一個空對象{},所以exports 初始值也是{}; require() 返回的是module.exports 而不是exports。 所以:我們通過
給 exports 賦值其實是給module.exports 這個空對象添加了兩個屬性而已,上面的代碼相當(dāng)于:
下面就在微信小程序中module.exports和exports的區(qū)別做出示例
綜上所述,當(dāng)module.exports 指向新的對象時,exports 斷開了與 module.exports 的引用,module.exports 指向了新的內(nèi)存塊,而 exports 還是指向原來的內(nèi)存塊。 因此,在不是很清楚兩者關(guān)系的時候,請采用module.exports來暴露接口,而盡量不采用exports暴露接口。 |