title: explicit "this" binding : how does the .bind method work?
body: <p>So I've been trying to learn a bit about JS context and understanding the "this" keyword. This is some code I've been working with: </p>
  
  <pre><code>var addNumbers = function(num1, num2){
    console.log(num1+num2);
  }
  
  var newAdd = addNumbers.bind(this,1,2);
  
  newAdd();
  </code></pre>
  
  <p>The above logs the value 3, as it should. But if I call addNumbers.bind without the "this" keyword:</p>
  
  <pre><code>var newAdd = addNumbers.bind(1,2);
  </code></pre>
  
  <p>The newAdd() call returns NaN. Why does this NaN happen? and also, I only came across the solution of adding "this" as a first parameter by trying things out and not necessarily out of intuition. Why does passing "this" as a parameter work? and what context does the "this" in this case represent? Thanks.</p>
  
  <p><strong>EDIT:</strong> This question is different from any .bind() related questions because It is not asking for a general explanation of this function. I am asking about a specific use case and need a specific answer. Other suggested duplicates were more generalized and were more open to different types of answers. </p>