我正在尝试编写一个字符串原型,用于检查字符串是否全部为大写。这是我到目前为止所做的,我不知道为什么这不起作用。
String.prototype.isUpperCase = function(string) {
if(string === string.toUpperCase()) {
return true;
}else{
return false;
}
}
我希望它能像这样工作:
'hello'.isUpperCase() //false
'Hello'.isUpperCase() //false
'HELLO'.isUpperCase() //true
答案 0 :(得分:3)
prototype方法接收this
中的实例,而不是代码似乎期望的第一个参数。试试这个:
String.prototype.isUpperCase = function() {
return String(this) === this.toUpperCase();
}
String(this)
调用确保this
是字符串原语而不是字符串对象,不会被===
运算符识别为等。
答案 1 :(得分:1)
您正在测试第一个参数(在所有三种情况下都是undefined
,因为您没有传递任何参数)而不是字符串本身(它是this
,而不是string
)