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

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

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

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

解决方法

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

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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...