需要什么(' jquery')返回以及为什么需要多次分配

时间:2017-12-27 15:58:01

标签: javascript jquery node.js

我是nodejs和javascript的新手,我试图得到这个问题的答案,但在投入大量时间后,我无法在互联网上找到答案。
我现在知道module Str_Plus def alpha? self[/[a-zA-Z]+/] == self end end class Pangram String.include Str_Plus ... end require正在做什么。我正在分析一些代码,它有以下代码行:

export

因此,我已经了解了var $ = global.jQuery = window.$ = require('jquery'); 的导出对象。正如我从这个thread中读到的,代码等于:

'jquery'

我希望这是正确的。如果没有,代码是什么意思?那我的问题是,现在var $ = (global.jQuery = (window.$ = require('jquery'))); 包含什么?

4 个答案:

答案 0 :(得分:2)

在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)

答案 1 :(得分:1)

$global.jQuerywindow.$中的所有三个都设置为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;
}

答案 2 :(得分:1)

var $ = global.jQuery = window.$ = require('jquery');

相当于

window.$ = require('jquery');
global.jQuery = window.$;
var $ = global.jQuery;

根据我的说法,这只是让人们使用jQuery的语法糖,但他们想要这样做($,或者jQuery或jQ等)

答案 3 :(得分:1)

  

require('jquery')返回什么

require('jquery')会返回一个新的jquery对象,由modules.export导出,因为您已经熟悉了。与任何Node模块一样,您可以将其分配给您喜欢的任何模块。

不要被$混淆,它是JavaScript中的有效变量名称。

  

为什么要进行多项作业

语法,单行方便,全部。

  • window.$与浏览器中的运行兼容
  • global.jQuery是两倍。
    • 如果jQuery不可用,例如运行多个版本的jQuery时,$可用是一个很好的后备。由于与某些第三方项目的兼容性差异,我发现这在大型项目中相当普遍。
    • 由于默认情况下变量通常在locally范围内,globaladditional, reserved meaningjQuery对象可用于require()其他代码部分而不$再说一遍。
  • Spring Bootmost common usage in the API examples,所以它是为了安慰,而不是必需品。