簡體   English   中英

在JS中包裝對象(最佳做法)

[英]Wrapping objects in JS (best practices)

例如,在與外部對象打交道時正在研究最佳實踐,並在本文中討論了為什么不修改您不擁有的對象。

推理是相當合理的,我的問題是我將如何實現這一目標。 作為參考,我的代碼行為是當前這樣的(自定義對象由第三方(Google地圖)擁有):

var cObj = new customObject();
//I need to custom properties in addition to what Google provides
//So I insert new properties:
cObj.myProp1 = 1;

本文針對其不良做法給出了充分的理由,因此我這樣做:

function objWrapper(e){
   var cObj = e.cObj ? e.cObj : null;
   var myProp1 = e.myProp1 ? e.myProp1 : null;
}

//Here I create a copy of my wrapper and insert the Custom Object into it:
var obj - new objWrapper({});
var cObj = new customObject();

//Then I insert the cObj reference to the wrapper
obj.cObj = cObj;

當只處理變量時,這種方法效果很好,但是如果說我曾經需要訪問obj的另一個子代,則需要添加一個循環引用,如下所示:

cObj.obj = obj;

這不是理想的,使用OO語言,我可以看到如何正確執行此操作,而不是十分確定如何在JS中進行。 我也看不到原型將如何真正地幫助這里。

PS:我正在使用的實際代碼在這里,但更通用的解釋是我要尋找的內容。

您不需要包裝的新東西。 對於對象,您可以只使用{}。

var obj = new customObject();

var wrapper = { 'childobj' : obj, 'anotherProperty': 1 };
console.log(wrapper.childobj);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM