Q:

Create object from string

Is it possible to create a new object using a string? 
For example, how can I convert the string "product" to var p = new Product? 
Thanks in advance. 
EDIT
What I want to do is to have a menu with <a href="#home"></a><a href="#products">products</a> and create the corresponding object from the href each time.  

A:

If you know the context, yes.  Let's say you're in a browser environment and Person is a global constructor.  Because any global variable is a property of the global object, it means you can access to Person through the global object window:
var p = new Person()

Is equivalent to:
var p = new window. Person()

So you can use the square bracket notation:
var p = new window["Person"]();

Of course this is valid for every kind of object.  If you don't want pollute the global scope, you can have:
var mynamespace = {};

mynamespace. Person = function Person() {..}

var p = new mynamespace["Person"]();

A:

Well you could always use the hideously insecure and illadvised eval(). 
e.g. 
var myStr = "Product"
var p = eval("new " + myStr + "()");

or that might be:
var myStr = "Product"
eval("var p = new " + myStr + "()");

But it's fraught with potential vulnerabilities, especially if the string is coming from user input.