AngularJS : basic Immediately Invoked Function Expression (IIFE) syntax

AngularJS : basic Immediately Invoked Function Expression (IIFE) syntax

by Daan De Smedt

HTML

<div ng-app="app" ng-controller="BasicController as vm">
  Hello, {{vm.name}}!
</div>

JavaScript

/*
	Immediately Invoked Function Expression (IIFE)
  -----------------------------------------------
  "An immediately-invoked function expression (or IIFE, pronounced "iffy") is a JavaScript design pattern which produces a lexical scope using JavaScript's function 	 scoping. 
  
  Immediately-invoked function expressions can be used to avoid variable hoisting from within blocks, protect against polluting the global environment and 	           simultaneously allow public access to methods while retaining privacy for variables defined within the function. 
*/

(function() {
  angular
    .module('app', [])
    .controller('BasicController', BasicController);

  function BasicController() {
    /* declare VM */
    var vm = this;
    /* set VM data */
    vm.name = "John Doe";
  }
})();