2

这是一个从 Bing 检索结果并填充 Object 数组的函数。

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);
    });
},

这是 res 对象的构造函数

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在控制台中显示。

这是一个截图 在此处输入图像描述

4

1 回答 1

0

正如@freakish 所说,调用后可能score已经更改了console.log,但console.log碰巧显示了更改后的值。

你可以console.log(b[0].score)在之前和之后尝试callback

于 2013-03-31T10:46:42.767 回答