JavaScript methods, calling method without parentheses
<p>Hello there I have a question with the that I need some help with to increase my knowledge and understanding of JavaScript.</p>

<p>Within my init method please look at this particular line with the .on method where I am saying when button is clicked we’re going to refer to the contactForm object by using the this keyword and then we’re going to call the .show method. </p>

<pre><code>.on( 'click', this.show );
</code></pre>

<p>Now the question is – if show is a method, then why aren’t we doing this, why aren’t we calling the method like this? </p>

<pre><code>  .on( 'click', this.show() );
</code></pre>

<p>Am I correct in saying it’s because we don’t want to call the show method immediately, if JavaScript came across the init method would parse all of this code, and then it would come to this section right here – <code>this.show()</code>  - and it would immediately execute this function. But I don’t want it to do that, I only want that function to be called on the condition that the corresponding button is clicked. </p>

<p>When the show method is written as <code>this.show</code> does the absence of the parentheses stop the show method from automatically executing ?</p>

<pre><code>var contactForm = {
        init: function() {
            $('&lt;button&gt;&lt;/button&gt;', {    
                text: 'Contact Me!'  
            }) 
                .insertAfter('article:first')
                .on( 'click', this.show() );
        },

        show: function() {
            console.log('showing');
        }
</code></pre>

<p>Sorry if I haven't been descriptive enough or accurate enough with my terminology. Any succinct and clearly explained answers would be massively appreciated.</p>
