Dan*_*ter 16 javascript variables function call
我想在函数中存放一个变量这个变量将根据用户交互改变状态
function plan_state(current){
if (current != ''){
state = current;
}
else {
return state;
}
}
Run Code Online (Sandbox Code Playgroud)
当doc加载时我调用plan_state('me');
当某些事情发生时,我可以打电话给plan_state('喜欢')
问题,我运行一个功能,并想检查当前状态..
alert(plan_state());
Run Code Online (Sandbox Code Playgroud)
我得到了未定义的回复,至少应该是'我',因为我设置这个onload.
我究竟做错了什么?
rea*_*ers 48
该函数不具有状态,因为状态变量在函数内声明,因此仅在函数调用的生命周期内存在.一个简单的解决方案是在函数外部全局声明变量.这是坏的 坏 坏 坏.
更好的方法是使用模块模式.如果你认真对待javascript开发,这是学习的基本模式.它通过内部(私有变量)启用状态,并公开许多方法或函数来更改或获取状态(如面向对象的编程)
var stateModule = (function () {
var state; // Private Variable
var pub = {};// public object - returned at end of module
pub.changeState = function (newstate) {
state = newstate;
};
pub.getState = function() {
return state;
}
return pub; // expose externally
}());
Run Code Online (Sandbox Code Playgroud)
所以stateModule.changeState("newstate");
设定国家
并var theState = stateModule.getState();
获得国家
归档时间: |
|
查看次数: |
24405 次 |
最近记录: |