This is because '' is a string literal and not an instance of the String class. Since properties like match are declared on String.prototype , you will not see them when using the string literal. If you use the new operator, you will see what you expected :
var s = new String("hello"); console.dir(s);
Here is a screenshot from the Chrome developer tools (note the need to extend the prototype , because the method you expect to see is declared on the prototype, not on the String object):

source share