为了账号安全,请及时绑定邮箱和手机立即绑定

函数能使用函数以外的变量吗?

函数能使用函数以外的变量吗?

慕前端4105395 2017-08-08 17:14:03
为什么这样可以输出function fn(){var txt=document.getElementById("txt").value;var mydate =new Date();mydate.setTime(mydate.getTime()+txt*60*60*1000);document.write("延迟后的时间为:"+mydate+"<br/>");}而这样不可以呢?var txt=document.getElementById("txt").value;function fn(){var mydate =new Date();mydate.setTime(mydate.getTime()+txt*60*60*1000);document.write("延迟后的时间为:"+mydate+"<br/>");}
查看完整描述

4 回答

?
业余奶茶品鉴师

TA贡献260条经验 获得超388个赞

第二种写法 取不到方法外的 txt 变量

查看完整回答
1 反对 回复 2017-08-08
?
拿铁

TA贡献2条经验 获得超0个赞

//试试:
txt=document.getElementById("txt").value;
function fn(){
var __me = this;
var mydate =new Date();
mydate.setTime(mydate.getTime()+__me.txt*60*60*1000);
document.write("延迟后的时间为:"+mydate+"<br/>");
}


查看完整回答
反对 回复 2017-08-09
?
千山暮雪梦里红妆

TA贡献6条经验 获得超0个赞

建议再看看js作用域部分,社区里固然有答案,不过知其所以然才是最重要的

查看完整回答
反对 回复 2017-08-09
?
业余奶茶品鉴师

TA贡献260条经验 获得超388个赞

这样改一下就可以,这样定义,txt就是全局变量了

txt=document.getElementById("txt").value;
function fn(){
var mydate =new Date();
mydate.setTime(mydate.getTime()+txt*60*60*1000);
document.write("延迟后的时间为:"+mydate+"<br/>");
}


查看完整回答
1 反对 回复 2017-08-08
?
cnyballk

TA贡献148条经验 获得超93个赞

是可以用外部环境变量的

查看完整回答
反对 回复 2017-08-08
  • 4 回答
  • 0 关注
  • 2331 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信