I’m trying figure out what’s the difference between prototype function and normal function
here’s my example: Task is to create function in ‘OOP way’ that will check if string is Uppercased.
Why im getting different output?
String.prototype.isUpperCase = function () { return this === this.toUpperCase(); } function check(str) { return str === str.toUpperCase(); } let str = 'C'; console.log(str.isUpperCase()) console.log(check(str))
Advertisement
Answer
this.toString()
will do the trick for you.
""
and new String("")
are different. The this
inside the prototype function is an instance of the String
class.
String.prototype.isUpperCase = function () { return this.toString() === this.toUpperCase(); } function check(str) { return str === str.toUpperCase(); } let str = 'C'; console.log(str.isUpperCase()) console.log(check(str))