2013-03-31 2 views
2

이 함수는 Bing에서 결과를 검색하고 Object 배열을 채 웁니다.0 대신 NaN 유지

callBing: function (query, callback) { 
    var url = 'http://localhost/meta/public/bing/'+query ; 
    $.getJSON(url, function(data) { 
     total_bing = data.d.results[0].WebTotal; 
     var j = 0 ; 
     $.each(data.d.results[0].Web, function() { 
      var obj = new res(j+1, this.Title, this.Description, this.Url, 0) ; 
      b.push(obj) ; 
      j=j+1 ; 
     }); 
     console.log(b); 
     callback(b, total_bing); 
    }); 
}, 

그리고 이는 입술을위한 생성자는 볼 수 있듯이 각 결과는 생성자 검색 될 때

function res(id,title,desc,url,score) 
{ 
    this.id=id; 
    this.title=title; 
    this.desc=desc; 
    this.url=url; 
    this.score=score; 
    this.changeRankScore=changeRankScore; 
    function changeRankScore(Rankscore) 
    { 
     this.score=Rankscore; 
     return Rankscore; 
    } 


} 

는, 그 결과 개체 배열 채워 개체.

결과 개체의 점수는 생성자의 마지막 매개 변수 인 0이지만 콘솔에 NaN으로 표시됩니다. 여기

이 @freakish 말했듯이 스크린 샷 enter image description here

+0

console.log(b[0].score)을 시도 할 수

? 예를 들어 인수없이. –

+2

'0' 대신에''0 "'을 주먹으로 변환 할 수도 있습니다. –

+2

크롬 콘솔에서 개체를 열면 'console.log'가 호출 된 상태가 아니라 현재 상태임을 알 수 있습니다. 즉, 'callback (b, total_bing);'이 원인 일 수 있습니다. – freakish

답변

0

입니다, 그것은 scoreconsole.log를 호출 한 후 변경되었지만, console.log 변경된 값을 표시 우연히 가능성이 있습니다. 당신은 당신이 어딘가에 changeRankScore 함수를 호출하지 마십시오 이전과 callback

관련 문제