Pad*_*ter 48 javascript angularjs
我有一个代码片段,其中有一个Angular Modular Controller,但是在同一个控制器内部有一个函数并且有一个调用,这在我的脑海中引起了怀疑,这是Javascript或Angular中允许的这种编码方式吗?如果是,那么它是如何读取的?请参阅以下代码格式:
obj.controller('CartController',function($scope){
$scope.totalCart = function(){
var total = 10;
return total;
}
function calculate(){
...Some Logic..
}
$scope.$watch($scope.totalCart, calculate);
)};
Run Code Online (Sandbox Code Playgroud)
请帮助我理解这种类型的函数定义和在Angular/Javascript中允许的控制器内调用?
art*_*iak 72
这calculate()是一个私有函数 - 它只能在范围内访问CartController.如果您不需要在视图中使用您的功能,最好将其设为私有.它表示它不打算在视图中使用,因此如果其他人将使用此代码,请在视图中使用它之前再三思.此外:calculate您可以从内部访问所有可在该范围内访问的CartController对象(包括CartController作为参数传递的对象).
以这种方式声明的函数是一个合适的JS function,这意味着您可以通过其名称来引用它.有时,如果您提前声明/创建函数并将其分配给其他对象的属性(在本例中$scope),则认为它更具可读性:
function someFn (...) { ... }
function someOtherFn (...) { ... }
...
$scope.someFn = someFn
Run Code Online (Sandbox Code Playgroud)
在上面的片段中,意图非常明确:可以someFn访问,同时保持someOtherFn私密.
顺便说一句.声明函数如:function nameFn(...){...}被称为函数语句 ; 你也可以这样做:( var nameFn = function(...) {...}所谓的函数表达式).这些之间略有不同 - 基本上它是非法的:
someFn();
var someFn = function(...) {...}
Run Code Online (Sandbox Code Playgroud)
然而,这有效:
someFn();
function someFn(...) {...}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
93503 次 |
| 最近记录: |