是否有必要在javascript中使用嵌套函数?

时间:2014-06-24 07:57:07

标签: javascript angularjs

请原谅我,如果这是一个基本问题,但我来自桌面c#背景,这个javascript嵌套函数模式似乎有点奇怪。这与角度严格相关,更多是javascript问题。似乎在大量的网站/教程中大量使用嵌套函数,

HTML

<div ng-controller="MyController">
  <button ng-click="sayHello()">Hello</button>
</div>

对于这个人为的例子,当点击这个按钮时,它会显示一个hello world消息

function MyController($scope) {
    $scope.sayHello =function sayhello(){
    alert("hello world");
};

但是,我们可以轻松地分离内部函数以使脚本更易于阅读,如此

var sayHelloVariable = function sayhello() {
    alert("hello world");
};

function MyController($scope) {
    $scope.sayHello = sayHelloVariable;
};

对于这个简单的例子,我们只有几行,但是我已经看到了嵌套函数行的教程,这使得很难理解发生了什么(或者我可能会及时思考javascript的思维方式?)

为什么嵌套函数如此受欢迎,这可能是一个性能原因?

由于

1 个答案:

答案 0 :(得分:1)

对于angular,除非您需要重用该函数,否则与该控制器相关的任何函数最好在该控制器内定义,如第一个示例所示。最好不要用大量随机函数污染父作用域。将function MyConroller($scope)更多地视为类定义而不是函数定义。