JS问题,如何在函数内容保留变量的值
function createAddPromptMask(data) {
var flagPromptMask = false
console.log("flagPromptMask == ", flagPromptMask)
setTimeout(function(){
flagPromptMask = true
}, 3 * 1000)
}
在createAddPromptMask函数中,有个变量flagPromptMask
我希望第一次执行createAddPromptMask值 flagPromptMask 是 false
我希望第二次执行createAddPromptMask值 flagPromptMask 是 true
不能把flagPromptMask放到函数外面
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在函数内部声明的变量不可能做到,只能放到外部,或者挂载到函数本身,因为函数也是一个对象
createAddPromptMask.flagPromptMask = false
你希望两次调用的访问的是同一个 flagPromptMask。
那么就需要让 flagPromptMask 的作用域更大。
createAddPromptMask = (function(){var flagPromptMask = false;return function(){}})()
this
。(hfhan 提到的)createAddPromptMask=function(){console.log(this.flagPromptMask)};createAddPromptMask.flagPromptMask=false;
方案都类似,就是把变量唯一,让他可以被两次 createAddPromptMask 访问。