Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么将返回对象键定义为';假人';局部变量?_Javascript_Angularjs - Fatal编程技术网

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的目的是什么?

没有充分的理由这样做

要么:

  • 作者不理解对象属性名不是需要声明的变量
  • 它们是从已删除的代码中遗留下来的
  • 它们是在(不正确的)预期使用这些变量的情况下设置的

使用jslint或jshint。Linter将告诉您很多关于这段代码及其作者的信息:)@YuryTarabanko jslint实际上可以使用这个
var dummy=function(){'use strict';return{kill:function(){return true;}};}
,但如果将
kill
定义为var(表示未使用),则会抱怨。