Working code sample.Kątowe nieoczekiwane zachowanie. Funkcja Self-wykonanie wywołuje funkcję zakres
Trivial znaczników:
<!DOCTYPE html>
<html ng-app="APP">
<head></head>
<body ng-controller="myController">
<script src="angular.min.js"></script>
<script src="controller.js"></script>
</body>
</html>
Trivial przykładowy kod:
angular.module('APP', []).controller('myController', function($scope) {
$scope.test = function() {
console.log('Weird behaviour!')
}
(function() {}()); //if you comment self-executing function console will be empty
});
I naprawdę dziwne zachowanie zakresu. Czy możesz wyjaśnić, dlaczego tak się dzieje?
Jestem pewien, że znasz to j kodowanie specyficzne dla avascript ... tutaj jest przykład: jsfiddle.net/prfy9eso. Warto zauważyć, że interpretacja dla tego przykładu działa w inny sposób (puste linie zmieniają zachowanie kodu w drugim przykładzie, ale nie zmieniają zachowania w przykładach kątowych). – Spirit
"return" [jest znanym wyjątkiem] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/return#Automatic_Semicolon_Insertion). Zwróć uwagę na "nieosiągalny kod po poleceniu zwrotu", dotyczy to tylko Firefoksa, ale użycie właściwie skonfigurowanego lintera może zapobiec obu sytuacjom. – estus
Również 'throw',' continue', 'break'. [spec] (http://ecma-international.org/ecma-262/5.1/#sec-7.9) –