2011-04-21 2 views
1

약간의 설명이 필요하고 제 5 장 상속에서 다음 코드를 건너 왔어요 : I 라인 2에 고양이 (사양) 후 혼수 상태에 의해 혼란 스러워요자바 스크립트 구문은 내가 좋은 부품 자바 스크립트를 읽고있다

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 + 라인 3) 감사

답변

5

하나의 문에서 변수,이하는 것과 같습니다

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

JavaScript에서:

쉼표 연산자는 두 피연산자를 모두 왼쪽에서 오른쪽으로 평가하고 두 번째 피연산자의 값을 반환합니다.

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

'var x = y;'는 명령문이지만 * 표현식 ('y')을 포함합니다. 그러나 var 문 내부의 표현식에는 쉼표 연산자가 포함될 수 없습니다. –

+0

@ Šime :하지만 전체 문장은 표현이 아니므로 초보자에게 그러한 세부 사항을 올바르게 설명하는 방법에 대해서는 약간 확신이 없습니다. 최신 기사가 조금 더 명확하고 정확합니까? –

2

들여 쓰기가 잘못, 그것이 있어야 :

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

그것은 동일 말 : 두 선언 단지 바로 가기의

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

다른 변수를 선언 할 수 있습니다. 다음과 같습니다.

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

var statement docs @ MDC을 참조하십시오.

+0

오. 사람들이 질문을 편집하는 것은 부적절합니다. – Raynos

관련 문제