JS函数被调用两次?

时间:2014-08-22 09:46:49

标签: javascript function loops for-in-loop

我似乎无法找到使代码运行两次的错误,并且JSFiddle不适合我,所以我不能仔细检查它是否是编辑器。

var friends = {};
friends.bill = {
    firstName: "Bill",
    lastName: "Gates",
    number: 9,
    address: ["5242", "drank avenue"]
};
friends.steve = {
    firstName: "Steve",
    lastName: "Jobs",
    number: 8,
    address: ["3368", "pool lane"]
};

var list = function(person)
{
    for (var friendName in person)
        console.log(friendName);
};

list(friends);

Output:
bill
steve
bill
steve

1 个答案:

答案 0 :(得分:15)

我将您发布的代码剪切并粘贴到我的JavaScript控制台中,结果是:

bill
steve

在某处,在您的原始代码中,您必须两次调用该函数。

在代码中选择一个位置 - 在这种情况下,我会选择list函数的顶部 - 然后放一个

debugger;

语句,然后打开JavaScript控制台。

该调试器中将有一个选项可以查看堆栈跟踪。堆栈跟踪将让您准确查看调用函数的位置,以便您可以查看是否从两个不同的点调用它。

如果这不起作用,请将调试器语句移到此行的正上方:

friends.bill = {

并重复,直到找到问题为止。