我在AngularJS的范围继承阅读this article,并通过这个代码示例困惑:为什么会导致继承?
angular.module("Demo", [])
.controller("ChildCtrl", function($rootScope, $scope) {
$rootScope.rootyThing = "I am groot";
console.log($scope.rootyThing); // "I am groot"
console.log(Object.getPrototypeOf($scope)); // Scope
});
我不明白为什么$scope.rootyThing
设置,而不是undefined
。
该文章的解释看起来不完整。从$rootScope
的子范围“原型继承”的事实不能解释这一点,因为rootyThing
没有设置在原型上,而且在创建子范围$scope
后设置。
唯一的解释是如果Angular中的作用域被深度修改,使得它们上设置的所有变量都被广播到现有的子作用域。除非我错过了一些东西,超过可能。
任何人都可以解释这一点吗?
编辑:我现在的理解是,$rootScope
其实的Scope
功能本身,而不是一个实例Scope
,所有$scope
情况下,以此为根原型,所以当变量的设置功能Scope
然后他们自然可以访问各种$scope
实例。
这是准确的吗?