Javascript 为什么将返回对象键定义为';假人';局部变量?
我最近多次看到类似于下面的代码 请注意,Javascript 为什么将返回对象键定义为';假人';局部变量?,javascript,angularjs,Javascript,Angularjs,我最近多次看到类似于下面的代码 请注意,modelMapper、viewMapper和source被定义为局部变量,但在其他情况下未使用,作为返回对象的键除外 也许值得注意的是,$parse返回一个函数,并且只有涉及返回函数的键被声明为本地变量-itemName不是 parse:function (input) { var match = input.match(TYPEAHEAD_REGEXP), modelMapper, viewMapper, source; if (!match
modelMapper
、viewMapper
和source
被定义为局部变量,但在其他情况下未使用,作为返回对象的键除外
也许值得注意的是,$parse
返回一个函数,并且只有涉及返回函数的键被声明为本地变量-itemName
不是
parse:function (input) {
var match = input.match(TYPEAHEAD_REGEXP), modelMapper, viewMapper, source;
if (!match) {
throw new Error("Error...");
}
return {
itemName:match[3],
source:$parse(match[4]),
viewMapper:$parse(match[2] || match[1]),
modelMapper:$parse(match[1])
};
}
定义这些局部var的目的是什么?没有充分的理由这样做 要么:
- 作者不理解对象属性名不是需要声明的变量
- 它们是从已删除的代码中遗留下来的
- 它们是在(不正确的)预期使用这些变量的情况下设置的
var dummy=function(){'use strict';return{kill:function(){return true;}};}
,但如果将kill
定义为var(表示未使用),则会抱怨。