JavaScript: Constructor Auto-Execution with new Keyword

By  on  

JavaScript is full of small, interesting facets that can trip you up, make you laugh, or make you cry.  This post is about an interesting one.  Those of you that have worked with JavaScript functions, and in a way JavaScript "classes" (as you used with MooTools), you're well acquainted with the new keyword.  With the new keyword you get the ability to pass arguments with the function call, but did you know that if you have no arguments, you don't need the parens at all?

function MyClass() {
	console.log('Initialized!');

	//Set a property, as an example
	this.dirty = true;
}

var instance = new MyClass;

// >> "Initialized!''

So why am I telling you this?  I have no idea.  It's just one of those fun tidbits that you can add to your brain. :)

Recent Features

  • By
    9 Mind-Blowing WebGL Demos

    As much as developers now loathe Flash, we're still playing a bit of catch up to natively duplicate the animation capabilities that Adobe's old technology provided us.  Of course we have canvas, an awesome technology, one which I highlighted 9 mind-blowing demos.  Another technology available...

  • By
    Creating Scrolling Parallax Effects with CSS

    Introduction For quite a long time now websites with the so called "parallax" effect have been really popular. In case you have not heard of this effect, it basically includes different layers of images that are moving in different directions or with different speed. This leads to a...

Incredible Demos

  • By
    background-size Matters

    It's something that makes all men live in fear, and are often uncertain of. It's never spoken, but the curiosity is always there. Nine out of ten women agree in the affirmative. Advertisers do their best to make us feel inadequate but...

  • By
    Create a Sexy Persistent Header with Opacity Using MooTools or jQuery

    I've been working with the Magento eCommerce solution a lot lately and I've taken a liking to a technique they use with the top bar within their administrative control panel. When the user scrolls below a specified threshold, the top bar becomes attached to the...

Discussion

  1. Amazing how the obvious is sometimes hidden in plain sight. I was going to save the extra () characters but it looks like there’s a micro performance hit in V8.

    http://jsperf.com/new-with-and-without-parens

    • MaxArt

      Really? That’s ironic, since Google Closure Compiler actually removes the parentheses when they can be omitted.

  2. Kostas Loupasakis

    That was something I always was curious about but never bothered to ask/look up. I assume the same thing also occurs in php?

  3. Asmor

    I’ll file this next to optional semi-colons and optional closing tags in HTML5: things that are interesting to know, but if I ever see while reviewing someone’s code I might get stabby.

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!