Working code sample.Angulares unerwartetes Verhalten. Self-executing-Funktion aufruft Scope-Funktion
Trivial Markup:
<!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 Codebeispiel:
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
});
Und wirklich seltsam Umfang Verhalten. Kannst du mir bitte erklären, warum das passiert?
ich bin sicher, dass Sie diese j kennen Avascript-spezifischer Code-Stil ... hier ein Beispiel: jsfiddle.net/prfy9eso. Es ist interessant, dass für dieses Beispiel der Interpretation zu beachten, arbeitet auf eine andere Art und Weise (Leerzeilen Code Verhalten im zweiten Beispiel zu ändern, aber nicht das Verhalten im Winkel Beispiel ändern). – Spirit
'return' [ist eine bekannte Ausnahme] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/return#Automatic_Semicolon_Insertion). Beachten Sie den Hinweis zu "Unerreichbarer Code nach Return-Anweisung", es betrifft nur Firefox, aber die Verwendung von richtig konfigurierten Filtern kann beide Situationen verhindern. – estus
Auch 'throw',' continue', 'break'. [Spec] (http://ecma-international.org/ecma-262/5.1/#sec-7.9) –