在 IE 11 中添加 startsWith

新手上路,请多包涵

IE 11 不支持带字符串的 startsWith 。 ( 看这里

您如何添加原型以使其支持该方法?

原文由 Sandah Aung 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 708
1 个回答

直接来自 MDN 页面,这里是 polyfill:

 if (!String.prototype.startsWith) {
    Object.defineProperty(String.prototype, 'startsWith', {
        value: function(search, rawPos) {
            var pos = rawPos > 0 ? rawPos|0 : 0;
            return this.substring(pos, pos + search.length) === search;
        }
    });
}

这在任何浏览器中都可以安全使用。如果该方法已经存在,则此代码将看到它并且不执行任何操作。如果该方法不存在,它会将其添加到 String 原型中,以便它可用于所有字符串。

您只需将它添加到您的一个 JS 文件中的某个地方,它会在启动时执行,然后再尝试使用 .startsWith()

如果您想要一个完全遵循规范的 polyfill 版本,包括所有可能的错误检查,您可以 在此处 获得,但由于 polyfill 分布在其中的方式,您可能必须将其与浏览器中的捆绑器一起使用几个文件。

原文由 jfriend00 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题