I'm learning js and I've come across an example in which || is used when declaring a var as a function:
var Triangulation = Triangulation || (function() {   
...   
It seems to me that this is checking to see if the var has already been declared before assigning it. Looking around the web, I don't see any other examples where this approach is used. What would be a reason to take this approach vs:
var Triangulation = function() {   
...  
Thanks
It means there is a chance the triangulation variable already defined, if it is, the triangulation variable returns itself, if not defined yet -- the anonymous function will return the value for the new variable triangulation.
And important/sensitive thing there is the var. It is a tricky business. For example:
<script>
var triangulation = function (){return(1);};
</script>
Actually means:
<script>
window.triangulation = function (){return(1);};// because "triangulation" is in global                       
                                               // namespace and "var" in this case 
                                               // means nothing "local", as you may expect
</script>
Next time, initialization var triangulation = ... will overwrite the global variable. If you want to preserve it, you have to write:
var triangulation = triangulation || function (){...}; 
                        It checks if Triangulation exists before assigning it a new value using Short-circuiting. This is a common practice when you want to support a feature that differs from browsers to browsers.
One example is requestAnimationFrame. Since every browser require different vendor prefix, we use || to assign the correct method to the variable so that it supports all browsers.
window.requestAnimFrame = (function(){
  return  window.requestAnimationFrame       ||
          window.webkitRequestAnimationFrame ||
          window.mozRequestAnimationFrame    ||
          function( callback ){
            window.setTimeout(callback, 1000 / 60);
          };
})();
//whatever exists will be assigned to window.requestAnimFrame .
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With