对于各种 javascript 应用程序,我经常使用我编写的一个名为 isBlank() 的小函数:
isBlank = function(text) {
while(text[0] == ' ') text = text.substr(1);
return (text === '');
}
该函数所做的只是删除输入字符串开头的所有空格,然后如果结果为空或不为空,则返回 true 或 false。所以我试着把这个函数做成一个String原型,如下:
String.prototype.isBlank = function() {
while(this[0] == ' ') this = this.substr(1);
return (this === '');
}
但是,当您尝试以下操作时,原型版本会给出“无效的左手赋值”错误:
" ".isBlank();
ReferenceError: Invalid left-hand side in assignment
我想这个问题源于我在while循环中重新分配'this'对象的事实,但由于我仍在学习java脚本,我想知道是否有人能够更详细地解释为什么这个原型没有'不工作。我对这个问题的理论方面更感兴趣,而不是对如何将 isBlank() 函数变成一个字符串原型来做我想要的。
谢谢!