javascript - 将依赖对象传递给 Javascript 模块时遇到问题

标签 javascript ecmascript-5

我有以下代码:

var myModule = (function($) {
  // Insert code here
} (jQuery || Zepto));

如果我没有在页面上引用 jQuery,脚本会出错并显示 jQuery is undefined.在代码中有很多次我会写 var foo = missingObj || fallbackObj;它工作正常。

我试图找出 a) 为什么它在这种情况下不起作用,以及 b) 有什么替代方案,因为我想使用使用这两个框架的项目。

最佳答案

var foo = missingObj || fallbackObj;

仅在 missingObj 未声明时有效。例如。当 missingObj 是一个值为 undefined 的参数时会发生这种情况(这是 x = y || default 的最常见用例)

你要找的代码是

} (window.jQuery || window.Zepto));

所以基本上它不起作用的原因是因为您混淆了具有 undefined 值的对象和未声明的对象。

访问 jQuery 是在访问一个未声明的值,这是行不通的。访问 window.jQuery 就是访问一个未定义的值,这确实有效。

例如

function jQuery(options) {
  options = options || {};
  ...
}

之所以有效,是因为 options 是未定义的,而不是未声明的

关于javascript - 将依赖对象传递给 Javascript 模块时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9504232/

相关文章:

javascript - ECMAScript/JavaScript - 继承和新运算符

javascript - 元素保留 Javascript 函数?

javascript - Chrome 61 : Unexpected token import

javascript - 在javascript中根据价格和类别复选框隐藏和显示div

javascript - 除了通过 "this"之外,还可以从原型(prototype)函数内部访问实例吗?

javascript - 为什么对象在 JavaScript 中不可迭代?

javascript - 使用用 ES6 编写的 npm 模块和 react-scripts

javascript - es5-shim 和 underscore.js?

javascript - 如何为低带宽连接禁用 jquery include

javascript - react 谷歌地图 API :Cannot read properties of undefined reading 'emit'