我有一个函数,它接受一个数组,执行一些操作并返回一个数字。这是一个截断版本:
function similarity(phrases){
if(phrases.length ==2){
//Lots of stuff
//concerning the phrases happen here
// and a variable called similarity is produced which
//contains a number
return similarity;
}else{
throw "Can only find similarity between 2 phrases";
}
}
如果我单独调用此功能,它可以完美地工作。但是,如果我尝试在setInterval中使用它,则会抛出错误。
setInterval(function(){console.log(similarity(["test","test"]))},2000);
预期结果是每2秒“1.00000”。相反,打印“1.00000”一次,然后抛出此错误:
“的setInterval(函数(){的console.log(相似性([” 测试”, “测试”]))},2000);
TypeError:String不是函数“
(指向相似的“s”)。
关于问题的任何想法?
非常感谢!
答案 0 :(得分:3)
看起来你将函数结果保存在与函数(similarity
)相同的变量中。这样你就可以覆盖上限范围的功能。
试试这个:
function similarity(phrases) {
var similarity;
/* ... */
}