0
(function(){
  var outer = 'foo';
  (function(){
    var inner = 'bar';
    return [inner, outer];
  })();
})();

上記のコードは、内部関数 #outer が最初に最も近いオブジェクトをチェックし、「outer」が含まれていないことを確認してから、スコープチェーンの次のレベルで変数を探す必要があるため、解決が遅くなります。

次のAngularコードはまったく同じように動作しますか? もしそうなら、スコープの作成とスコープチェーン変数の検索に注意する必要がありますか?

angular.module('app', [], function($rootScope){
    $rootScope.rootVar = 'root Variable';
})
.controller('ctrl1', function($scope){
    $scope.var1 = rootVar;
})
.controller('ctrl2', function($scope){ //nested
    $scope.var2 = rootVar;
})
4

1 に答える 1