Inhabitat: More Than a Pretty Surface: The Functional Edge of Reflective Materials Using the new () keyword requires a default constructor to be defined for said class. Without the keyword, trying to class new () will not compile. For instance, the following snippet will not compile.

Understanding the Context

The function will try to return a new instance of the parameter. ... This is a generic type constraint. See this MSDN article.

Key Insights

It is NOT 'bad' to use the new keyword. But if you forget it, you will be calling the object constructor as a regular function. If your constructor doesn't check its execution context then it won't notice that 'this' points to different object (ordinarily the global object) instead of the new instance. Therefore your constructor will be adding properties and methods to the global object ...