我试图用一个函数覆盖给定的 javascript 变量,以防它是一个字符串:
mapper = _.isString(mapper) ? function (item) { return item[mapper]; } : mapper;
但是,令人惊讶的是,mapper仍然是给定的字符串,而不是函数!
现在,当我将上述语句中的相同右值分配给一个新变量时,它的行为与预期一致:
var mapFunction = _.isString(mapper) ? function (item) { return item[mapper]; } : mapper;
(我后来在代码中使用了 mapFunction,而不是mapper)
我错过了什么?我不能将函数分配给曾经是字符串的变量吗?