如果声明和.click函数

时间:2014-11-29 16:04:50

标签: javascript

我一直用javascript制作视频游戏。但是,有一件事我不明白。

if (!user.hasOwnProperty('firstName')) {
    $('#inputSubmit').click(function () {
        user.firstName = getInput();
        addText_1("Good, now type your character's last name");
    });
};

此声明将继续执行。基本上条件是用户没有名字属性,该功能将在点击提交时添加名字。但是,您可以继续按提交按钮,它将继续添加文本。

$('#inputSubmit').click(function() {
    if(!user.hasOwnProperty('firstName')) {
        user.firstName = getInput();
        addText_1('hello');
    };
});

然而,这是有效的。它只做一次。有人可以解释一下我不理解的原则吗?

非常感谢!

2 个答案:

答案 0 :(得分:2)

您将click个事件附加到#inputSubmit。此回调忽略了周围的if语句。在第二个示例代码中,if是在回调函数内部。

答案 1 :(得分:0)

在第一个代码“hasOwnProperty”中检查了函数()的外部作用域,但在第二个代码中检查了函数作用域中的条件