删除JavaScript中的重复代码;更新对象传递给函数

时间:2016-03-14 21:46:54

标签: javascript angularjs

我有一个需要发生三次的代码段。这是第一个:

    if (!$scope.subId1) {
        //$scope.subId1 = $scope.userEnteredSubId;
        //cassetteRepository.subId1 = $scope.userEnteredSubId;
        //$scope.userEnteredSubId = '';
        //cassetteRepository.userEnteredSubId = '';
        assignSubId($scope.subId1, cassetteRepository.subId1);
        return;
    }

接下来的两段代码是上面代码的重复,但是subId1变成了subId2。然后subId1变为subId3。

评论代码是我尝试在每个代码段中删除的代码,因为它是重复的代码。这就是我致电assignSubId()的原因。但是,在方法运行后,调用者的值不会更新:

var assignSubId = function(scopeVariable, repositoryVariable) {
    scopeVariable = $scope.userEnteredSubId;
    repositoryVariable = $scope.userEnteredSubId;
    $scope.userEnteredSubId = '';
    cassetteRepository.userEnteredSubId = '';
}

有没有办法这样做,所以我可以让一个函数更新值?

1 个答案:

答案 0 :(得分:2)

这应该有效

    if (!$scope.subId1) {
        assignSubId('subId1');
        return;
    }

并且

var assignSubId = function(subId) {
    $scope[subId] = $scope.userEnteredSubId;
    cassetteRepository[subId]= $scope.userEnteredSubId;
    $scope.userEnteredSubId = '';
    cassetteRepository.userEnteredSubId = '';
}