请原谅我,如果这是一个基本问题,但我来自桌面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的思维方式?)
为什么嵌套函数如此受欢迎,这可能是一个性能原因?
由于
答案 0 :(得分:1)
对于angular,除非您需要重用该函数,否则与该控制器相关的任何函数最好在该控制器内定义,如第一个示例所示。最好不要用大量随机函数污染父作用域。将function MyConroller($scope)
更多地视为类定义而不是函数定义。