Saturday 8 April 2017

un expexted behaviour of javscript constructor when called without new keyword

I created a class using function like -

function Person(name) {
  this.name = name;
}

var obj = new Person("Ferdinand");

console.log(obj.name);

I am creating an object obj and prints its property name it is working fine and prints "Ferdinand", but if we forget to write new key word like below program -

function Person(name) {
  this.name = name;
}

var obj = Person("Ferdinand");

console.log(name);

Here I am not able to understand why name is available in console, it is printing "Ferdinand". But we are using Person as a function and assigning name variable in function itself so why its value is available outside function.



via Sushil Kumar

No comments:

Post a Comment