javascript小记——setTimeout调用方法总是提示未定义??
2016-06-23 17:09
519 查看
这两天遇到项目中碰到的一个问题:定义了一个方法以后,在调用的时候总是提醒我方法没有定义,然后我就懵了......
function countdown_mcode(second){ var mcode=$(".checkcodeBtn"); if(second>0){ mcode.css({"width":"80px","color":"#eee"}); mcode.html('重新获取'+second); second--; setTimeout("countdown_mcode("+second+")",1000); }else{ mcode.html('重新获取'); mcode.css({"color":"#fff"}) mcode.removeAttr('replay'); } }
这是倒计时的方法,我定义在了$(document).ready()方法中,然后,就报错了。为什么呢?
首先来说说这个setTimeout方法:
setTimeout这个方法是window对象的方法,用于在指定的毫秒数后调用函数或计算表达式。
window对象,window对象,window对象!!!
也就是说这个方法是执行在全局作用域下,而我定义的方法没有在全局作用域下,肯定找不到了。之前的一篇博客有写到js中的作用域链问题。请点击这里
ok,圆满解决!!!
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享