Javascript 请向我解释为什么在嵌套函数的内部和外部有$scope.variable两次? 函数MyController($scope){ $scope.clock=new Date();

Javascript 请向我解释为什么在嵌套函数的内部和外部有$scope.variable两次? 函数MyController($scope){ $scope.clock=new Date();,javascript,angularjs,Javascript,Angularjs,创建控制器时,第一次初始化$scope.clock。这是第一次运行$scope.clock=new Date();的唯一时间。第二次,函数更新$scope对象上的clock属性,以设置新日期 此块将导致$scope.clock未定义,直到10秒后超时执行: function MyController($scope){ $scope.clock = new Date(); <---here var updateClock = function() { $scope.clock = new

创建控制器时,第一次初始化
$scope.clock
。这是第一次运行
$scope.clock=new Date();
的唯一时间。第二次,函数更新
$scope
对象上的
clock
属性,以设置新日期

此块将导致$scope.clock未定义,直到10秒后超时执行:

function MyController($scope){ 
$scope.clock = new Date(); <---here
var updateClock = function() {
$scope.clock = new Date(); }; <---and here
setInterval(function() { $scope.$apply(updateClock);}, 1000);
updateClock();
此块$scope.clock在创建控制器时初始化:

function MyController($scope){ 
    var updateClock = function() 
    {
        $scope.clock = new Date(); 
    };
    setTimeout(function() { $scope.$apply(updateClock);}, 10000);
}

它每1000毫秒更新一次
$scope.clock
变量(通过调用
updatelock
函数)。它被初始化,然后更新。前端上的某些东西可能正在将
$scope.clock
变量读取为“当前时间”。我建议使用Angular的
$timeout
,而不是
setInterval
,谢谢你的回复。但是如果我们没有初始化,会发生什么呢..函数仍然运行否?是的,函数仍然会运行,但是$scope.clock在函数第一次执行之前是未定义的。因为updateLock()是的,这正是我的观点。块内的函数将以任何方式执行。是否有任何其他示例可以帮助我澄清我的理解。抱歉打扰你。这就是你要找的吗?是的,就是它。非常感谢!!!!我我想这就是你最初的意思,但…只是要确定一下。
function MyController($scope){ 
    $scope.clock = new Date();
    var updateClock = function() 
    {
         $scope.clock = new Date(); 
    };
    setTimeout(function() { $scope.$apply(updateClock);}, 10000);
}