Class name as function parameter, how does it work?

I have a function that takes a class as input parameter and then instantiates it.

It looks kind of like this:

class SomeClass {}

class OtherClass {
    function startHere() {
        doSomething( SomeClass );
    }
    function doSomething( myClass ) {
        var c = new myClass();
    }
}

This works fine, but I am wondering how it works exactly. What type is the parameter of doSomething()? In the language reference I could not find any type that represents a class.

Is there a way to at compile time restrict the class passed in to certain types (e.g. all classes extending a certain base class)? I know I could use instanceof at runtime, but would prefer compile time.