Javascript语法需要一些解释

时间:2011-04-21 21:37:58

标签: 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;
    }
  }

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

3 个答案:

答案 0 :(得分:5)

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

var that           = cat(spec);
var super_get_name = that.superior('get_name');

JavaScript中的comma is actually an operator

  

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

var语句由以下形式的一个或多个表达式组成:

varname [= value]

其中方括号表示可选组件。将军var statement看起来像这样:

  

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

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

for(var i = 0, x = complicated_array[0]; i < complicated_array.length; x = complicated_array[++i])

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

答案 1 :(得分:3)

它允许您声明另一个变量。它等同于以下内容:

var that = cat(spec);
var super_get_name = that.superior('get_name');

请参阅var statement docs @ MDC

答案 2 :(得分:2)

缩进是错误的,应该是:

var that = cat(spec),
    super_get_name = that.superior('get_name');

与说法相同:

var that = cat(spec);
var super_get_name = that.superior('get_name');