在前端如何保護共享物件

2021-08-27 05:13:35 字數 1211 閱讀 2330

被多次使用到的同乙個物件即為共享物件

比如我們用標準的es模組來寫乙個匯出單位轉換的模組

//converter module

export default

}

當我們在其它模組中使用該模組時,converter即是共享物件,記憶體中只有乙份,不管它被import了多少次。

同理,上面展示的是通用方法的物件集合,在前端專案裡,我們也會把一些所謂寫死的資料集中封裝在某個模組裡,方便後期的修改,比如我們實現乙個constant常量模組,我們把一些專案中使用的,後期可能會修改的資料放進去

//constant

export default

}

這裡僅示意一下

防止共享的物件被意外修改導致線上故障

原則上這些通用的模組,我們不會,也不會有意的在我們業務**中去修改裡面的資料,尤其像常量這樣的模組,如果要修改的話,我們肯定修改常量這個模組。

但是,凡事總有意外,比如說我們有這樣乙個場景:根據後端返回的用資訊,以及前端寫死的一些常量,來判斷某個使用者能不能展示某個報表,我們期望的**可能是這樣的

import constant from './constant';//引入我們前面定義的constant模組

//...其它略

export default view.extend(

}});

注意上述**中的if語句,如果錯寫成:if(constant.reports.productid=user.reportproductid),兩個等號的比較寫成了乙個等號的賦值。

如果自測的時候,使用者介面裡user.reportproductid返回的正好也是123,那麼先賦值,再做if判斷,成立,做為開發者會錯誤的以為這裡的邏輯沒問題。當然,正常情況下也要測試下使用者介面裡user.reportproductid返回不是123的情況,這時候或許就能發現問題。

C C ,常物件 保護共享資料

定義常物件的作用是為了保證該物件中資料成員的值不能被修改。定義常物件的一般形式為 類名 const 物件名 實參表 或者 const 類名 物件名 實參表 include using namespace std class student void change int n,float s void...

在前端開發中如何減少或取代if else

最近在開發過程中時常因為專案比較忙,都是先考慮實現功能,最近回首看 發現很多冗長的if else判斷,今日就寫一些自己在替代if else的一些方案。需求 當a 為或假的時候b的取值也隨之發生變化 let a true,b null console.time time1 if a else cons...

如何在前端應用中實現單元測試

前端工程化是現代前端提公升效率和 質量的乙個重要手段。單元測試作為保障 質量,提公升 可維護性的一種方法,也越來越多的在前端得到應用。本文以前端主流的 vue 框架為基礎,帶領大家在前端應用中搭建單元測試,並演示如何對 vue 單檔案元件進行測試。希望通過本文的的講述,能給希望學習如何在前端應用中進...