我遇到的问题涉及向现有String 构造函数添加新方法的应用程序。在 Stoyan Stefanov 的 Object Oriented Program for Javascript 中,有一个使用Array 构造函数的 .reverse()方法为String 构造函数创建一个示例。这是示例:
String.prototype.reverse = function() {
return Array.prototype.reverse.apply(this.split('')).join('');
}
我以为 Array 的.reverse()方法直接属于 Array 的对象。实际上,当我尝试使用以下语句执行第二段代码时:
String.prototype.reverse = function() {
return Array.reverse.apply(this.split('')).join(''); //WITHOUT the .prototype
}
var rev = "karunesh".reverse(); //applying the code here
我在 Firebug 控制台中收到一条错误消息:"TypeError: missing argument 0 when calling function Array.reverse"。这对我来说没有任何意义。
当然,如果我在.prototype中添加回来,它工作得非常好。
另外,如果我必须调用原型才能从Array 对象访问.reverse() 方法,那么我是否必须对 Javascript 中的任何内置对象执行此操作?
我在这里先向您的帮助表示感谢!