我有一个名为 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;
};
当它最初运行调用此方法的方法时,它将运行else块中的内容
但
为postcodeFilter
设置值后,我无法将其重新设置为null
或undefined
。
我尝试了以下方法,但没有成功
delete this.serviceFilter;
this.serviceFilter = null;
this.serviceFilter = undefined;
我尝试在MapFilter
类的实例上做同样的事情<无效
如何将类的属性重置为null
或undefined
?
答案 0 :(得分: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()
&#13;
不要使用type of null
它不会返回null
如果你在函数内部调用原型
请勿使用this.postcodeFilter
调用尝试使用test.postcodeFilter