0

我们都知道jquery 和 mootools 等 js 库对 Web 浏览器和 Web 开发的巨大好处。这些库现在包含在很多网站中,如果不是大多数网站的话。

所以,我想知道为什么当前的javascript 引擎都没有在 javascript 引擎本身中包含这些功能。毫无疑问,这具有更多好处,例如性能、无需外部加载、标准化(及其自身的好处)等。

我意识到这可能只会使网络浏览器等受益,尽管除了网络浏览器之外还必须有许多用途,但为了争论,人们可以在可选引擎/ECMASCript 中添加这种内置功能的引擎 - 我我在这里猜这个词-组件(强调可选),然后只能在网络浏览器内的引擎中启用或添加。

有谁知道这一点或有更多关于这一切的信息?

我的第二个问题是:如果我们,社区,决定这是未来的一个巨大进步,我们可以在哪里提出/提出这样的事情,我们还能做些什么来实现这一点?

(你们中的一些人必须意识到某些项目中包含某些功能成本的麻烦,例如由无数用户投票选出的几年到十年前的功能请求,但由于......好吧......让我们不要忘恩负义开发人员并将这些点留给你自己的想象。所以我宁愿让社区把这个愿望集中在一个地方,也许第二个问题的答案就是它的开始?)

4

1 回答 1

0

ECMAScript 只打算标准化构建您所描述的这些更高级别的库所需的最少数量的语言和支持库。此外,像 jQuery 这样的东西可以在浏览器代码提供的文档对象模型上工作,这甚至不是 ECMAScript 标准的一部分——ECMAScript 只知道“外来对象”的一般类别中的 DOM 节点。SpiderMonkey 引擎仅实现 JavaScript 语言及其小型标准库,然后将其嵌入到更大的 Firefox 浏览器环境中。

那么,更直接地回答这个问题:是否有可能让 JavaScript 引擎深入了解 jQuery 之类的用户级库(也可能是实现)?是的,尽管正如您所提到的,您会在浏览器中破坏很多组件化。真的有人会这样做吗?很可能不会,因为 JavaScript 引擎只是实现了构建更高级别库(如 jQuery)所必需的核心。每个人都对他们生活在 JS 引擎之外感到满意,并且 JavaScript 的一个不错的特性是您可以根据需要加载库 - 源代码是免费提供的。

事实上,作为进一步的说明,JS 引擎正在越来越多地将 ECMAScript 标准库代码推出 C++ 实现领域,并进入称为“自托管内置”的东西,这使得功能Array.indexOf可以在 JavaScript 本身中实现(即,带有 for 循环和比较)。这将更多 JavaScript 代码暴露给优化 JIT 编译器的自然过程,而不必专门处理对本机 C++ 实现代码的调用。

于 2012-08-30T20:36:38.377 回答