首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何扩展核心类型而不修改原型?

如何扩展核心类型而不修改原型?

提问于 2018-03-15 04:21:07
回答 2关注 0查看 189

如何在不修改原型的情况下扩展核心JavaScript类型(字符串,日期等)?例如,假设我想用一些便利方法创建派生的字符串类:

代码语言:txt
复制
function MyString() { }
MyString.prototype = new String();
MyString.prototype.reverse = function() {
  return this.split('').reverse().join('');
};
var s = new MyString("Foobar"); // Hmm, where do we use the argument?
s.reverse();
// Chrome - TypeError: String.prototype.toString is not generic
// Firefox - TypeError: String.prototype.toString called on incompatible Object

这个错误似乎源于字符串基本方法,在这种情况下可能是“分裂”,因为它的方法被应用于某些非字符串对象。但是,如果我们不能应用非字符串对象,那么我们是否真的可以自动重用它们?

显然,我的尝试在许多方面都存在缺陷,但我认为这表明了我的意图。经过一番思考,似乎我们不能重用String原型对象的任何函数,而无需在String上明确调用它们。

是否有可能扩展核心类型?

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档