微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 为什么函数如escape,unescape等,而不是String对象上的方法?

字符串可以被视为可以保存和操作文本的最简单的对象,因此作用于字符串的函数不一定要作为方法集中在一起.另一方面,javascript主要是一种Web编程语言,使用URI对于语言中的字符串来说是很常见的用法.在这种情况下,像lastName.encodeURIComponent()这样的东西实际上非常有用.

为什么像encodeURIComponent和unescape这样的函数而不是String对象上的方法?是否有一些CS原则在这里工作,还是由该语言的设计者之一主观选择?

显然,并非每个对字符串进行操作的函数都需要在字符串对象中,但是人们在何处以及如何决定在哪里绘制线条?

解决方法

我不认为这些方法JavaScript的一部分,而是从窗口继承,窗口是与浏览器关联的全局对象.因此,虽然您列出的函数处理字符串,但它们实际上与浏览器函数紧密相关,因此不会附加到String原型.像MDN这样的资源在这方面有些模糊,但我很确定最初的JS规范没有提到这些方法.

它可能没什么意义,但现在可以想象有人可能想要使用JS作为嵌入式系统的语言或其他没有互联网关联的东西.这里,包含encodeURIComponent()的语法与document.getElementById()一样不合适.

原文地址:https://www.jb51.cc/js/150059.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐