标准的javascript调整

时间:2010-12-23 12:33:28

标签: javascript cross-browser

您好我发现我经常想在我的js项目中包含以下部分或全部内容:

  • Crockford的Object.create
  • Array.prototype.indexOf
  • Array.prototype.remove
  • Crockford的json2.js

查看完整示例文件@ https://gist.github.com/752895

所以问题......我错过了什么?有没有更好的方法来实现这一目标?

(我也使用jquery,它是否已解决其中一些问题?)

3 个答案:

答案 0 :(得分:1)

  

有没有更好的方法来实现这一目标?

不是真的。 jQuery是故意放手的事情,比如Array.prototype,因此您必须在没有它们的浏览器上添加自己的indexOfremove。其中大部分将由浏览器直接支持,因为他们将引擎升级到ECMAScript第5版;在那之前,我们必须自己升级当前的设置。只需确保您的脚本是干净的,将其与应用程序中的其他脚本组合,作为构建过程的一部分(因此您没有很多不同的源文件),然后去城镇。 (编辑:对不起,你已经明确地说明了后一点,因为你已经将json2.js折叠到了你的脚本中。)

答案 1 :(得分:1)

jQuery有一些功能,如$.inArray(),其工作方式类似于Array.prototype.indexOf()$.parseJSON(),其工作方式与JSON.parse()类似,但它没有等效的字符串化JSON或从数组中删除元素(据我所知)。如果可用,jQuery会映射到本机方法。

您可能需要查看Kris Kowal's ECMAScript 5 shim,看看是否有其他方法可能需要在现代浏览器中具有本机等效方法。这为您提供了两全其美的优势 - 旧版浏览器的兼容性和新版浏览器的更好性能。

答案 2 :(得分:0)

您可能会发现学习使用RequireJS之类的模块加载器是值得的。这将使您更容易管理依赖项。如果您想查看它,可以使用basic instructions available

作为额外的好处,加载程序可以让您通过Google Compiler缩小代码。加载器使用的the module pattern非常漂亮。