这是我们所拥有的:

var MyObject = function(){
    var contents = [undefined,2,undefined,4,5];

    this.getContents = function(){
       return contents;
    }
}


var o = new MyObject();


如您所知,o.getContents()的值为[undefined,2,undefined,4,5]

我想做的是删除该私有数组的未定义值,而不覆盖整个数组,不公开私有contents,并且通常不更改对象代码。

最佳答案

return contents.filter(function(e) {return e});


filter方法创建一个新数组,同时从输入数组中删除""nullundefined0值。

关于javascript - 如何修改对象 getter 返回的私有(private)变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17208016/

10-12 01:02