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