js高级-函数

在这里插入图片描述

什么是函数

实现特定功能的n条语句的封装体。只有函数是可以执行的,其他类型的数据不能执行。

为什么用函数

提高代码复用。便于阅读。

怎样定义函数

函数声明

 function fn1() {  //函数声明
        console.log("fn1()");
    }
    fn1();

表达式

   var fn2 = function () { //表达式
        console.log("fn2");
    };
    fn2();
如何调用/执行函数

test():直接调用
obj.test():通过对象调用
new test(): new调用
test.call/apply(obj):临时让test成为obj的方法进行调用

   var obj = {};
     function test() {
         this.xxx = 'hahaha'
     }
     //obj.test() 不能直接调用
     test.call(obj);   //obj.test() //可以让一个函数成为指定的任意对象进行方法调用
    console.log(obj.xxx);
回调函数

定义一个函数,它没有被调用但最终却执行了的函数叫回调函数。
常见的回调函数
dom事件回调函数
定时器回调函数
ajax请求回调函数
生命周期回调函数

<button id="btn">
    测试点击事件
</button>
<script type="text/javascript">
    //dom事件回调函数
    document.getElementById('btn').onclick = function () {
        alert(this.innerHTML);
    };
    //定时器
        //超时定时器 //循环定时器
    //定时器回调函数
    setTimeout(function () {
        alert('到点了')
    },2000)
IIFE

全称: ImmediateLy-Invoked Function Expression (立即执行函数表达式)
作用: 隐藏实现,不会污染外部(全局)命名空间,用来编写js模块。

    (function () {  //匿名函数自调用
        var a = 3;
        console.log(a+3);   //6
        console.log('something');
    })();
    var a = 4;
    console.log(a); //4

    (function () {
        var a = 1;
        function test() {
            console.log(++a);   //2
        }
        window.$ = function () {   //向外暴露一个全局函数
            return{
                test:test
            }
        }
    })();
    $().test(); //$为一个函数,$执行后返回的是一个对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值