为什么本机不构建类似框架的函数?

时间:2011-02-27 18:44:47

标签: javascript javascript-framework

我只是想知道为什么像String.contains()这样的琐碎函数不属于JavaScript核心本身。我的意思是,尽管JavaScript核心包含了基于核心功能创建新功能所需的所有功能,但默认情况下,某些明显的功能不可用。

那里有 一些很棒的框架,基本上扩展了JavaScript核心,但我不明白为什么它们不是本地构建的。

此外,例如,jQuery ajax()函数比原生XMLHttpRequest对象更加开发人员友好。对于像这样的事情,使用框架几乎是必不可少的。

那么为什么这些函数在JavaScript核心本身不可用?

3 个答案:

答案 0 :(得分:4)

  

有一些很棒的框架   那里基本上延伸了   JavaScript核心,但我只是不明白   为什么它们不是原生的。

我认为没有人有先见之明提前10至15年思考并看看技术的实施将如何发挥作用,哪些浏览器将支持当前标准化的部分规范创建我们认为在2011年有用的这些实用功能。

Javascript于1995年由Eich创建,其风景大不相同。 “Ajax”当时并不存在,那么有人会怎么想15-16年后我们需要一些跨浏览器的Ajax功能呢? Microsoft于1996年推出了iframe,并于1999年推出了XMLHttp(Ajax)。

如果你是1995年的Brendan Eich,并考虑浏览器的功能以及互联网不像现在这样流行的事实,并且缺乏标准化 - 你会想到这些东西吗?其中许多,例如“Ajax”,甚至都不存在?

就语言的变化而言,我说的原因主要是因为IE版本之间存在大量时间,特别是IE6到IE7,相隔5 - 6年,IE7仍然有ECMA-262 ,CSS1 / CSS2错误,如果他们采用多年前发布的规范这么慢,它怎么可能支持更新的Javascript功能。

这在另一个答案中提到过,但Javascript只是原始Javascript ECMAScript的超集。 ECMAScript是构建ActionScript和Javascript以及其他语言的核心,它不包含DOM或XMLHttpRequest之类的方法。浏览器将脚本语言与渲染引擎/ DOM绑定,并将浏览器方法提供给环境。

答案 1 :(得分:1)

与所有一样,为什么X语言没有Y功能?问题的答案是:

因为原始语言作者没有包含它。

为什么到底?我想只有他们知道。

答案 2 :(得分:1)

我认为重要的是要注意JavaScript,即ECMAScript,并不一定是浏览器语言。它的目的是可以在任何程序中使用的可嵌入语言。像XMLHttpRequest这样的东西不是语言的一部分,它们只是由浏览器提供,作为实现[i]做[/ i]某事的一种方式,因为纯JavaScript没有内置操作与任何事物互动。

至于String,我不确定为什么这么多String操作被排除在语言之外。例如,为什么没有Trim功能呢?谁知道呢。