我从一本书中得到了这个练习(没有解决方案):
想象一下 String() 构造函数不存在。创建一个构造函数 MyString(),它的行为尽可能接近 String()。不允许使用任何内置的字符串方法或属性,请记住 String() 不存在。您可以使用此代码来测试您的构造函数:
>>> var s = new MyString('hello'); >>> s.length;
然而,我有一个解决方案,但不确定我是否遵循了要求(即:“我不允许使用任何内置的字符串方法或属性”);这是我的解决方案:
function MyString(string) {
this.length = 0;
for(var i in string) {
this.length++;
}
}
var x = new MyString("Hello");
x.length;
我不确定的是 for-in 循环。你能告诉我那个循环中字符串变量的数据类型是什么吗?是那种数组还是我将它用作字符串(也就是说我确实违反了要求)?非常感谢!