我试图覆盖一个给定的JavaScript与函数变量,如果它是一个字符串:为什么不能在JavaScript中用函数变量覆盖字符串变量?
mapper = _.isString(mapper) ? function (item) { return item[mapper]; } : mapper;
不过,出人意料的是,映射仍然是给定的字符串,而不是功能!
现在,当我分配了相同的右值从上面的语句,到一个新的varialbe,它表现为预期:
var mapFunction = _.isString(mapper) ? function (item) { return item[mapper]; } : mapper;
(我用的是mapFunction在后面的代码,而不是映射)
我错过了什么?我不能将一个函数分配给一个曾经是字符串的变量吗?
无法用'var mapper ='e';'重现此操作,然后运行您的代码。 –
对那个函数里的'mapper'的引用不会做你认为它会做的事。 – epascarello
猜测epascarello是正确的,因为它是一个范围问题,它实际上不会以这种方式重现。谢谢! – Jacob