==연산자와 ===

String.prototype.equals = function(a) {
  return this == a
};


let a = "a"

console.log(a.equals("a")) //true
String.prototype.equals = function(a) {
  console.log(typeof this)
  return this === a
};


let a = "a"

console.log(a.equals("a")) 
//object
//false

위 코드에서 this는 객체이기때문에 값이 같더라도 타입이 다르므로 false로 리턴된다.


참고
[1] https://hianna.tistory.com/375