代码片段- Javascript语法需要一些解释

code snippets - Javascript syntax need some explanation

本文关键字:解释 语法 片段 Javascript 代码      更新时间:2023-09-26

我正在阅读Javascript的优秀部分,并在第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行cat(spec)之后的昏迷感到困惑。这条线到底是做什么的?(第二行+第三行)由于

这是在一个语句中声明两个变量的快捷方式,相当于:

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

逗号在JavaScript中实际上是一个操作符:

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

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

varname [= value]

,其中方括号表示可选组件。一般的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])

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

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

参见var语句文档@ MDC

缩进不对,应该是:

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

这就等于说:

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