将$ scope函数转换为常规var函数。对性能有影响吗?

时间:2015-07-23 18:30:22

标签: javascript angularjs

我的代码中有大约6个函数没有与DOM中的任何东西进行交互,我只需要在一个特定的范围内。

那么,如果我转过来这是否有任何问题

$scope.verifyPlaceBetAvailable = function(param) {
  //something happens here
}

进入这个

var verifyPlaceBetAvailable = function(param) {
  //something happens here
}

我的意思是,这对我的应用程序的性能会有什么影响?

5 个答案:

答案 0 :(得分:2)

我认为如果你没有使用对它没有影响的函数填充$ scope,或者在DOM上应该更好....

答案 1 :(得分:2)

首先,您应该将所有帮助程序或方法放入服务中,例如工厂,服务或提供程序。

关于表现,我认为问题不是你要问的问题。我相信可以更多地影响他们的写作方式以及他们正在处理的数据类型。

对于6种简单方法,它不应影响性能。

答案 2 :(得分:2)

您不必将每个方法放在控制器的范围内。

只要该方法未在视图中使用或不与DOM中的任何内容交互,就可以从范围中删除该函数。没有重大的性能问题。

对于实用程序方法,您应该在角度js中使用工厂,服务或提供程序。

参考AngularJS: Service vs provider vs factory

答案 3 :(得分:2)

只有在模板中需要函数时,才应在$scope中添加函数,否则使用局部变量或注入服务(如果它具有某些业务逻辑且不需要$scope)。而且它相当于提高应用程序性能而不是降低它。

答案 4 :(得分:1)

如果从视图中调用函数,则只需要在作用域中放置一个函数。任何其他类型的函数都可以是控制器中的简单变量,但是这些函数中的许多函数可能应该在服务或工厂中,而不是直接在控制器中实现。