在`$ scope`或`this`上定义的控制器函数之间的性能差异 - AngularJS

时间:2013-08-15 14:28:22

标签: javascript angularjs scope

在Angular中,您可以通过将方法附加到$scope

来定义控制器中的方法
$scope.myFunction = function () { ... }

当然,您也可以将它们附加到this,我已经看到它用于指令与父控制器之间的通信:

/* within the controller */
this.myFunction = function () { ... }

由于Angular观察值,两种方法之间是否存在性能差异?

即使没有性能差异,这似乎是一种保持某些方法私有的好方法,因此它们不会被意外地从视图中访问。

1 个答案:

答案 0 :(得分:1)

来自文档(http://docs.angularjs.org/guide/dev_guide.mvc.understanding_controller):

  

注意:早期版本的Angular(1.0 RC之前版本)允许您与$ scope方法互换使用,但现在不再是这种情况了。在范围内定义的方法内部,这个和$ scope是可以互换的(角度设置为$ scope),但在控制器构造函数中没有。

所以this$scope,但不会很久。