我目前正在学习高级 JavaScript,目的是构建一个符合标准(HTML5、CSS3、ESv5)的库。一路走来,我已经问了几个相关的问题,试图弄清楚从哪里开始,做什么,不做什么,避免什么等。我已经开始阅读 ECMA-262(ECMAScript 版本 5)文档,并且在我开始开发工作之前已经运行了一些测试。
以前的问题:
JavaScript、JScript 和 ECMAScript 有什么区别?
在我的研究中,我发现不同的浏览器以不同的方式实现标准,在这方面,它们实现了不同的对象。例如,IE 实现了一个名为 ActiveXObject 的对象,但在 FireFox 中并非如此。所以我写了一个小测试工具来确定浏览器中是否定义了某些东西。
考虑以下测试一些已知对象(包括 jQuery,因为它不是内置的)。
同样,我已经到了需要帮助的地步:
问题:
给定上面的例子,对象和函数有什么区别?
我是否在 ES/JS 中编写函数或对象?
为什么 Object 是函数而不是对象?
是否有内置对象/函数的层次结构?
可以将内置对象/函数重新定义为完全不同的东西吗?
可以未定义内置对象/函数吗?
如果内置对象/函数本身不支持它们,是否可以为其分配新特性?
如果一个对象是在一个浏览器中定义的,而不是在另一个浏览器中定义的,我该如何弥补这一点?
PS 我不想要与特定实现(JavaScript/JScript)相关的答案,而是与标准(ECMAScript v5)相关的答案。提前致谢!