我在testFun.js为什么我总是会在我的情况下获得'虚假'的价值?
var testFunc=function{
var hasCar=false;
return{
checkCar: function(){
for(var i=0; i<5; i++){
MyCar.check(hasCar); //defined in following MyCar.js
}
}
}
}();
功能在MyCar.js
var MyCar=function(){
var createCar=function(){
//Create a car
//var car = new Car();
}
return{
check: function(hasCar){
console.log(hasCar); //PROBLEM HERE: fierBug console output is "false" always even CHECK_BUTTON has been clicked, why?
var handler=function(){
if(!hasCar)
createCar();
hasCar=true;
}
//CHECK_BUTTON is a button on UI
CHECK_BUTTON.click(handler);
}
}
}();
正如你在MyCar模块模式看,当点击CHECK_BUTTON
另一个功能,我将调用createCar()
函数,并将hasCar
的值从改为改为true。
hasCar
定义在testFunc模块模式中,并传递给MyCar.check(hascar)
。
我有内部MyCar.check()
功能的Firebug的控制台输出,我想到的是,当鼠标点击CHECK_BUTTON
,控制台输出将是真正,但我总是得到假,为什么?我用hasCar
来检查是CHECK_BUTTON
被点击过一次还是不行,但是如果它总是持有假的值,我无法知道它。如何摆脱这一点?
我无法理解你的流程,你可以把一些html代码....? – Nirmal 2011-04-29 10:51:41
CHECK_BUTTON是页面上的按钮,没有别的....我的问题是关于javascript ...我只是不明白为什么'hasCar'仍然是错误的,我点击了CHECK_BUTTON,如你所见,它应该改变为真“。 – Mellon 2011-04-29 10:53:03
你打电话check_button onclick什么函数?确切地说, – Nirmal 2011-04-29 10:55:25