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

我是nodejs和javascript的新手,我试着为这个问题得到答案,但经过大量时间的投入后,我无法在互联网上找到答案。
我现在知道requireexport在做什么。 我正在分析一些代码,它有以下代码行:

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时,这是一个很好的回退。 由于与某些第三方项目的兼容性差异,我发现这在大型项目中相当常见。
  • 由于默认情况下,变量通常在Node中作为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.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;
    }
    
    链接地址: http://www.djcxy.com/p/69993.html

    上一篇: what does require('jquery') return and why multiple assignments

    下一篇: Assignment Operators in One Statement