在Class

时间:2017-07-31 07:56:57

标签: javascript prototype

我有一个名为 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设置值后,我无法将其重新设置为nullundefined

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

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

我尝试在MapFilter类的实例上做同样的事情<无效

如何将类的属性重置为nullundefined

1 个答案:

答案 0 :(得分:1)

&#13;
&#13;
    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;
&#13;
&#13;

不要使用type of null它不会返回null

  

如果你在函数内部调用原型

请勿使用this.postcodeFilter调用尝试使用test.postcodeFilter

之类的实例名称