Javascript 在AngularJS中,什么';$scope和本机上下文之间的区别是什么?

Javascript 在AngularJS中,什么';$scope和本机上下文之间的区别是什么?,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我刚开始研究Angular,但很难理解对$scope的需求。Javascript已经有了通过上下文(即this)的作用域概念,并允许程序员使用call或apply将该上下文注入函数中 Angular's,$scope和关键字this之间有什么区别吗 如果存在差异,那么控制器或指令中的this值是多少 提前感谢:)是的,它们完全不同。构造函数只是由注入器创建的一个实例化的新的ed构造函数(您编写的函数) $scope在概念上与DOM更相关。在这种情况下,使用ng controller的元素可以获得

我刚开始研究Angular,但很难理解对
$scope
的需求。Javascript已经有了通过上下文(即
this
)的作用域概念,并允许程序员使用
call
apply
将该上下文注入函数中

Angular's,
$scope
和关键字
this
之间有什么区别吗

如果存在差异,那么控制器或指令中的
this
值是多少


提前感谢:)

是的,它们完全不同。构造函数只是由注入器创建的一个实例化的新的ed构造函数(您编写的函数)

$scope
在概念上与DOM更相关。在这种情况下,使用
ng controller
的元素可以获得
$scope
并且子元素也可以。如果具有自己作用域(控制器/指令)的子元素与父作用域具有相同的属性,您将无法访问它们。它的摘要循环(脏检查/数据绑定)中还包含了所有内部信息,如手表、事件等。我有一个通读

至于
myCtrl As
语法,这很好,但它真正做的只是将控制器实例放到作用域中。使用您设置的名称


例如
myCtrl作为foo
$scope.foo=myCtrlInstance。您也可以在控制器中执行。

$scope
是注入依赖项的,我想这并不像使用上下文调用函数那么简单。但是,如果您在
ng controller
中使用
this
作为
$scope
控制器作为
语法,则可以使用
。但是
$scope
它仍然是可注入的。我意识到我混淆了上下文和范围的概念,这导致了我的很多困惑。特别是关于JavaScript中依赖注入的需求。另外,我没有意识到控制器和指令是对象构造函数。我读了你链接的文章,然后用谷歌搜索补充,这让我来到这里。然后事情终于对我有利了。JS/Angular中的依赖项注入只是调用代码修改作用域的一种方式。i、 将闭包包装到作为参数传入的对象中。