我正在阅读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行) 感谢
答案 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');
答案 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');