Javascript语法需要一些解释

Cod*_*ier 1 javascript code-snippets

我正在阅读Javascript the Good Parts,并在第5章继承下遇到了以下代码:

var coolcat = function (spec) {
   var that = cat(spec),
             super_get_name = that.superior('get_name');
   that.get_name = function (n) {
    return 'like ' + super_get_name() + ' baby'; return that;
    }
  }
Run Code Online (Sandbox Code Playgroud)

我对第2行中猫(规格)之后的昏迷感到困惑.这条线究竟做了什么?(第2行+第3行)谢谢

mu *_*ort 5

这只是在一个语句中声明两个变量的快捷方式,它等同于:

var that           = cat(spec);
var super_get_name = that.superior('get_name');
Run Code Online (Sandbox Code Playgroud)

逗号实际上是运营商在JavaScript:

逗号运算符计算其两个操作数(从左到右)并返回第二个操作数的值.

一个var说法是由形式的一个或多个表达式:

varname [= value]
Run Code Online (Sandbox Code Playgroud)

方括号表示可选组件.一般var声明如下:

var varname1 [= value1 [,varname2 [,varname3 ... [,varnameN]]]];

您通常只会看到var语句和for循环中使用的逗号运算符:

for(var i = 0, x = complicated_array[0]; i < complicated_array.length; x = complicated_array[++i])
Run Code Online (Sandbox Code Playgroud)

但它可以在其他地方使用.