为什么一些有角度的$ scope函数“返回”一个操作?

时间:2014-07-24 20:39:42

标签: javascript angularjs

我遇到过一些看起来像这样的代码:

$scope.open = function($event) {
    $event.preventDefault();
    $event.stopPropagation();
    return $scope.opened = true;
 };

为什么这会返回作业?这是做什么的?做或不做这样做会有好处吗?

3 个答案:

答案 0 :(得分:1)

基本上是:

$scope.open = function($event) {
    $event.preventDefault();
    $event.stopPropagation();
    $scope.opened = true;
    return $scope.opened;
 };

所以好处是它可以节省一行代码。可能不值得。

它也可能是编译的CoffeeScript代码,最初看起来像:

$scope.open = ($event) ->
    $event.preventDefault()
    $event.stopPropagation()
    $scope.opened = true

CoffeeScript始终返回方法中最后一行的结果,因此它可能会返回您通常不会返回任何内容的函数的值。

答案 1 :(得分:0)

这将使函数返回true,同时将$scope.opened设置为true。这相当于做

$scope.opened = true;
return true;

答案 2 :(得分:0)

我同意道格拉斯的回答,认为这不值得。事实上,我会说它是混淆编码。返回类似return x===y的东西是一回事,在这种情况下,您实际上是在比较x和y,如果相等则返回true,否则返回false。但是返回作业的结果没有多大意义。