javascript - jQuery 如何保护覆盖 jQuery 和 $

标签 javascript jquery

这些变量紧接在 jQuery source 中定义了 jQuery 的本地副本之后。 .

// Map over jQuery in case of overwrite
_jQuery = window.jQuery

// Map over the $ in case of overwrite
_$ = window.$

可以阅读评论并知道原因...但是

  • 这些代码行是如何做到这一点的?

  • 添加类似的东西会保护我的个人命名空间还是在源代码的更深处?

  • 如果这不是在源代码中,可能会发生什么不好的事情的例子是什么?

最佳答案

如果您查看 jquery.js 文件,您会发现它们首先保存之前的定义(第 31-32 行 v1.4.4):

// Map over the $ in case of overwrite
_$ = window.$,

然后,如果您调用 noConflict,它只会将值设置回去(第 397-398 行)

noConflict: function( deep ) {
    window.$ = _$;

您可以添加类似于您自己的项目的内容来保护 namespace 。这个概念不仅仅适用于 javascript。

如果不包含这些行,那么您将无法在同一页面上运行 jQuery 和 Prototype,因为两者都使用 $ 运算符 - 可能不会发生什么坏事,只是您的代码将无法正常工作并可能导致错误。

关于javascript - jQuery 如何保护覆盖 jQuery 和 $,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4465940/

相关文章:

c# - 如何在悬停时更改图像源?

javascript - 如何给prettyphoto添加动画或效果

javascript - 从 AJAX 成功函数更新图像源

jquery - Jquery 动画圆形 Div 的问题

javascript - jsPlumb 连接器显示错误路径

javascript - 在弹出窗口中显示评分星级

javascript - 如何在悬停在 Highcharts JAVASCRIPT 上时去除外部阴影

javascript - redux 流程给出错误

javascript - 无法让 SVG 正确缩放

JavaScript:如何检测ES6类有自己的构造函数?