内部函数丢失字符串引用

时间:2016-03-30 17:05:24

标签: javascript scope

我需要做的是接收一个字符串列表并将其转换为一个函数列表,用于检查给定键是否包含相应的字符串。我在尝试的是什么:

var words = ['f', 'b', 'b']; //I never know how this list is
for(i in words){
    var str = words[i];
    words[i] = function(key){
        return key.indexOf(str) > -1;
    }
}

在运行此脚本之后,我希望words成为这个:

[
    function(key){
        return key.indexOf('f') > -1;
    },
    function(key){
        return key.indexOf('b') > -1;
    },
    function(key){
        return key.indexOf('b') > -1;
    }
]

但是当我尝试words[0]('foo')时,它会回复我false。我做错了什么?

0 个答案:

没有答案