js中神奇的函数指针

js中的函数指针是一个神奇的东西

  1. 定义function check(){};对于上面这个函数,check(函数名)就是函数指针,check指向函数主体,如果alert(ckeck),那么弹出的信息就是function(){…}
  2. 函数名就是函数指针,并且指向函数匿名函数主体,实际最好是替换,你可以将函数名替换为一个匿名函数即:function(){…},记住每个函数名都可以这样替换
  3. 这里想说的是函数名运用时的几个注意点:
    • 第一个例子:

                function  hanshu(){

                        alert("我被执行了");
                }
                function diaoyong(){
                        return hanshu();//注意这里,看似返回了函数,实际是什么都没返回,代码效果是在这执行了这个函数,你可以按照上面所说将匿名函数代进去看看.
                                                      正确的应该是return hanshu;
                }
                var obj=diaoyong();
 
    • 第二个例子
                obj.addEventListener("click",hanshu()); 
                或者
                obj.οnclick=hanshu();
                如果你这么写就大错特错了,原因还是一样,你根本都没添加任何监听事件,代码效果就好比,hanshu();一样,也就是在这个代码段中奖函数执行了一边
                正确的写法应该是
                obj.addEventListener("click",hanshu); 
                或者
                obj.οnclick=hanshu;
    • 第三个例子
                setInterval("hanshu()",1000);
                经过上面那两个例子,你是不是认为这样做也错了,这样写是对的,也只能这样写,因为这个hanshu()外面有引号,意思就是每个1秒,执行引号里面的内容即:hanshu(),
                你可以这样理解setInterval("alert('引号就好比作用域一样,外面加个引号,就好比加个匿名函数包围')");
                懂了吧
 
实际总结就是,只要外面没加引号,函数名加个括号就代表执行函数,特别是你返回一个函数时,一定要注意这点,你如果想传递一个函数,那么只需传递函数名就可以了           
最好的方法就是记住函数名替换思想
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值