Why does the following statement:

```
(function(){ console.log(this); }).apply(String("hello"));

```

display the following output

```
String {0: "h", 1: "e", 2: "l", 3: "l", 4: "o", length: 5} 

```

and not a simple:

```
hello

```

Is this behavior built-in to the interpreter or is there a way to detect the type of reference passed?