JavaScript has both primitive strings and string objects. What you wrote there is a primitive line. The method Object.prototype.isPrototypeOfalways returns falsefor any primitive, so your results make sense.
If you used a string object, you will get true:
var myStr = new String("Sample");
console.log(String.prototype.isPrototypeOf(myStr));
console.log(Object.prototype.isPrototypeOf(myStr));
Run codeHide result
, : , , String.prototype?
, , accessor , ( String.prototype ), . ( .)
, String.prototype, ( ):
Object.defineProperty(String.prototype, "foo", {
value: function() {
return this;
}
});
var primitive = "string";
var object = primitive.foo();
console.log(primitive === object);
console.log(primitive == object);
console.log(String.prototype.isPrototypeOf(primitive));
console.log(String.prototype.isPrototypeOf(object));
Hide result