我在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
更改为true。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
值从false
hasCar
在testFunc模块模式中定义,并传递给MyCar.check(hascar)
。
我在MyCar.check()
函数中有一个fireBug控制台输出,我希望当鼠标单击CHECK_BUTTON
时,控制台输出为true,但是我总是得到false
hasCar
来检查是否单击过CHECK_BUTTON
,但是如果它始终保持false值,则无法知道。如何摆脱这个? 我在testFun.js中有一个函数var testFunc = function {var hasCar = false; return {checkCar:function(){for(var i = 0; i <5; i ++){MyCar.check(hasCar); // ...
原始值传递按值
和不按引用传递