什么需要('jquery')返回以及为什么需要多个分配
我是nodejs和javascript的新手,我试着为这个问题得到答案,但经过大量时间的投入后,我无法在互联网上找到答案。
我现在知道require
和export
在做什么。 我正在分析一些代码,它有以下代码行:
var $ = global.jQuery = window.$ = require('jquery');
所以在这里,据我'jquery'
, 'jquery'
的导出对象被返回。 正如我从这个线程读到的,代码等于:
var $ = (global.jQuery = (window.$ = require('jquery')));
我希望这是正确的。 如果不是,代码的含义是什么? 那么我的问题是,现在var $
contains是什么?
什么require('jquery')
返回
require('jquery')
返回一个新的jquery
对象,由你已经熟悉的modules.export
导出。 作为任何Node模块,您可以将其分配给任何你喜欢的。
不要被$
弄糊涂,它是JavaScript中一个有效的变量名称。
为什么多次分配
句法,单行便利,就是这样。
window.$
是为了与在浏览器中运行的兼容性 global.jQuery
是双重的。 jQuery
可用的时候,对于$
是不可用的,例如运行多个版本的jQuery时,这是一个很好的回退。 由于与某些第三方项目的兼容性差异,我发现这在大型项目中相当常见。 locally
作用域,因此global
可以使jQuery
对象可用于其他代码部分,而require()
再次require()
。 $
是API示例中最常用的用法,所以它在这里是为了安慰,而不是必要的。 在JavaScript中,您可以在同一个语句中进行多个值赋值。
多重=
从右向左评估。 因此在你的例子中$
是jQuery
,它是从require
导入的
简单的视觉例子:
var obj_1={};
var obj_2={};
// creates properties on both objects and assigns same value to all 3 variables
var someVar = obj_1.a = obj_2.b = 10;
console.log('obj_1', obj_1)
console.log('obj_2', obj_2)
console.log('someVar', someVar)
$
, global.jQuery
和window.$
中的所有三个都设置为require('jquery')
的返回值。 我不完全确定原因是什么。
在使用对象来同时设置一个对象的属性和一个短的工作变量时,我使用了这个模式,例如:
this.myMethod = function (value) {
var n = this.someReallyLongPropertyName = value;
// no way am I typing this.someReallyLongPropertyName again!
if (n == 1) return n % n * n + n;
return 0;
}
链接地址: http://www.djcxy.com/p/69993.html
上一篇: what does require('jquery') return and why multiple assignments