2017-07-31 280 views
0

我再有一個類MapFilter,它有條件地創建一個對象數組。將屬性設置爲類

創建類時,名爲postCodeFilter的屬性會自動設置爲null。當使用類初始空值的邏輯正常工作:

MapFilter.prototype.filterByPostcode = function(res){ 

    var newRes = []; 

    console.log(this.postcodeFilter); 
    if(typeof this.postcodeFilter !== 'undefined') { 

     for(var i = 0; i < res.length; i++) { 

      if(res[i].postcode == this.postCodeFilter) { 

       newRes.push(res[i]); 

      } 

     } 

    } else { 

     newRes = res.slice(); 

    } 

    return newRes; 

}; 

當開始運行調用此方法的方法,它將運行在所從事的其他塊

無論其

設置爲postcodeFilter的值後,我不能再次將其設置爲nullundefined

我曾嘗試以下方法,沒有成功

delete this.serviceFilter; 
this.serviceFilter = null; 
this.serviceFilter = undefined; 

我試圖做的MapFilter類的實例同樣無濟於事

如何重置一個類的屬性再次是nullundefined

+1

超出了試圖刪除/設置null serviceFilter屬性的代碼,你可以編輯你的帖子來包含使用/設置它的代碼嗎?或者您是否打算清除其他屬性(例如'postcodeFilter')? –

+0

請注意,對'typeof'進行'未定義'測試時,它不會捕獲'null'值。 – Bergi

+0

請提供[mcve]非工作代碼。你提交的所有任務都應該按照你的意願去做。 – Bergi

回答

1

function MapFilter(){ 
 
     this.postcodeFilter=null 
 
    } 
 
    
 
    MapFilter.prototype.filterByPostcode = function(){ 
 

 
    console.log(this.postcodeFilter); 
 
    if(this.postcodeFilter !== null) { 
 

 
     console.log('is bull') 
 

 
     
 

 
    } else { 
 
     console.log('is null') 
 

 
    } 
 

 
} 
 

 
var test = new MapFilter() 
 

 
test.filterByPostcode() 
 
test.postcodeFilter='bull' 
 
test.filterByPostcode()

不使用type of null不會返回null

,如果你調用原型內部功能

不要用this.postcodeFilter嘗試使用實例名稱叫喜歡test.postcodeFilter