2017-03-03 1 views
1

그래서 "Javascript The Good Parts"를 읽고 있습니다.
내가 할 수없는 부분이 있습니다.
4 장, 모듈에 있습니다.
"Q1000"대신 "0"이 반환됩니다.자바 스크립트 모듈 패턴이 잘못된 결과

var serial_maker = function() { 
 
    var prefix = ''; 
 
    var seq = 0; 
 
    
 
    return { 
 
    set_prefix: function (p) { 
 
     prefix = String(p); 
 
    }, 
 
    set_seq: function (s) { 
 
     seq = s; 
 
    }, 
 
    gensym: function() { 
 
     var result = prefix + seq; 
 
     seq += 1; 
 
     return result; 
 
    } 
 
    }; 
 
}; 
 

 
var seqer = serial_maker(); 
 
seqer.set_prefix = ('Q'); 
 
seqer.set_seq = (1000); 
 
console.log(seqer.gensym());

+1

'seqer.set_prefix = ('Q') '이라한다 할당 –

+0

당신은'obj.method = ('value')'로 메소드를 오버라이드하려고 시도하고'obj.method ('value')'를 사용하지 마십시오. 유리는 맞습니다 – mtizziani

+0

오른쪽. 아마도 책의 예에서의 몇 가지 정오표 일 것입니다. – resting

답변

0

귀하의 실수는이 라인에 -

seqer.set_prefix = ('Q'); 
seqer.set_seq = (1000); 

var serial_maker = function() { 
 
    var prefix = ''; 
 
    var seq = 0; 
 
    
 
    return { 
 
    set_prefix: function (p) { 
 
     prefix = String(p); 
 
    }, 
 
    set_seq: function (s) { 
 
     seq = s; 
 
    }, 
 
    gensym: function() { 
 
     var result = prefix + seq; 
 
     seq += 1; 
 
     return result; 
 
    } 
 
    }; 
 
}; 
 

 
var seqer = serial_maker(); 
 
seqer.set_prefix('Q'); 
 
seqer.set_seq(1000); 
 
console.log(seqer.gensym());

0

set_prefixset_seq 재미있다 >`seqer.set_prefix ('Q')`대신의 함수 호출을 필요 - ctions, 그래서 기능

var serial_maker = function() { 
 
    var prefix = ''; 
 
    var seq = 0; 
 
    
 
    return { 
 
    set_prefix: function (p) { 
 
     prefix = String(p); 
 
    }, 
 
    set_seq: function (s) { 
 
     seq = s; 
 
    }, 
 
    gensym: function() { 
 
     var result = prefix + seq; 
 
     seq += 1; 
 
     return result; 
 
    } 
 
    }; 
 
}; 
 

 
var seqer = serial_maker(); 
 
seqer.set_prefix('Q'); 
 
seqer.set_seq(1000); 
 
console.log(seqer.gensym());