我可以在javascript中创建对变量的引用吗?

时间:2013-11-17 06:51:56

标签: javascript

我尝试了以下内容:

    $scope.qs = {};
    $scope.qh = {};
    $scope.qv = {};
    var qs = $scope.qs;
    var qh = $scope.qh;
    var qv = $scope.qv;
    $scope.getQuestionHeaders = function () {
        var url = '/api/Test/GetQuestionHeaders?id=1';
        $http.get(url)
            .success(function (data, status, headers, config) {
               qh = data.testQuestionHeaders;
               qs = qh[0];

我的数据被分配给qs,我可以看到其他字段,例如qs.i,qs.q等。但是当我使用chrome开发人员工具时,我注意到没有为$ scope.qs分配任何内容

2 个答案:

答案 0 :(得分:1)

这是正确的。

你基本上是这样做的:

foo.someProp = 1;
var bar = foo.someProp;
bar = 3; 

您希望foo.someProp为3吗?如果要更新$scope.qs引用,则需要直接执行,否则只需更改本地变量引用即可。您可以修改qs中的项目:

qs.foo = 1;
console.log($scope.qs.foo);

答案 1 :(得分:1)

您正在覆盖变量qhqs,因此他们放弃了之前的引用。如果要保持两个vars同步,则必须执行此操作:

$scope.qh = qh = data.testQuestionHeaders;
$scope.qs = qs = qh[0];

更新属性不会影响变量引用:

qh.witness = true;
$scope.qh.witness === qh.witness === true; // true