在类中将属性再次设置为 null



我有一个名为MapFilter的类,它有条件地创建一个对象数组。

创建类时,名为postCodeFilter的属性将自动设置为null。 当使用具有此初始 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;
};

当它最初运行调用此方法的方法时,它将运行 else 块中的内容

然而

postcodeFilter设置值后,我无法将其重新设置为null或再次undefined

我尝试了以下方法,但没有成功

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

我尝试在MapFilter类的实例上做同样的事情,但无济于事

如何将类的属性重置为再次nullundefined

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

最新更新