字符串可以被视为可以保存和操作文本的最简单的对象,因此作用于字符串的函数不一定要作为方法集中在一起.另一方面,javascript主要是一种Web编程语言,使用URI对于语言中的字符串来说是很常见的用法.在这种情况下,像lastName.encodeURIComponent()这样的东西实际上非常有用.
为什么像encodeURIComponent和unescape这样的函数而不是String对象上的方法?是否有一些CS原则在这里工作,还是由该语言的设计者之一主观选择?
显然,并非每个对字符串进行操作的函数都需要在字符串对象中,但是人们在何处以及如何决定在哪里绘制线条?
解决方法
我不认为这些方法是
JavaScript的一部分,而是从窗口继承,窗口是与浏览器关联的全局对象.因此,虽然您列出的函数处理字符串,但它们实际上与浏览器函数紧密相关,因此不会附加到String原型.像MDN这样的资源在这方面有些模糊,但我很确定最初的JS规范没有提到这些方法.
它可能没什么意义,但现在可以想象有人可能想要使用JS作为嵌入式系统的语言或其他没有互联网关联的东西.这里,包含encodeURIComponent()的语法与document.getElementById()一样不合适.