命名并赋值给变量的函数

时间:2015-11-04 11:53:59

标签: javascript angularjs

将一个函数分配给angularjs变量的范围并为其指定一个名称是不好的做法?

AngularJS doc的示例:https://docs.angularjs.org/guide/scope

$scope.username = 'World';

$scope.sayHello = function() {
     $scope.greeting = 'Hello ' + $scope.username + '!';
};

'糟糕的做法':

$scope.username = 'World';

$scope.sayHello = function helloWorld() {
     $scope.greeting = 'Hello ' + $scope.username + '!';
};

2 个答案:

答案 0 :(得分:0)

这是不好的做法和不必要的混淆。

John Resig在他的高级JS教程中展示了两者之间的区别:

http://ejohn.org/apps/learn/#11

var ninja = function myNinja(){ 
  assert( ninja == myNinja, "This function is named two things - at once!" ); 
}; 
ninja(); 
assert( typeof myNinja == "undefined", "But myNinja isn't defined outside of the function." ); 
log( ninja );

答案 1 :(得分:0)

如果你想指定角度分数功能,你可以将它作为第一种方式。

$scope.sayHello = function() {
 $scope.greeting = 'Hello ' + $scope.username + '!';
};

但如果您真的想为角度模式指定一个功能,可以像

一样使用它
var temp = function () { 
  console.info('temp');
}

$scope.sayHello = temp;

但最后两者都是相同的(声称为角度函数),所以最好遵循第一种方法。