函数进阶学习

目录

1. 函数的定义和调用

1.1 函数的定义方式

1.2 函数的调用方式

2. this

2.1 函数内 this 的指向

2.2 改变函数内部 this 指向  

3. 严格模式

3.1 什么是严格模式

3.2 开启严格模式

3.3严格模式中的变化

4. 高阶函数

5. 闭包

5.1 变量作用域

5.2 什么是闭包

5.3 闭包的作用

5.4闭包案例


#博学谷IT学习技术支持#

1. 函数的定义和调用

1.1 函数的定义方式

1. 函数声明方式 function 关键字 (命名函数)
2. 函数表达式 (匿名函数)
3. new Function()
var fn = new Function(' 参数 1',' 参数 2'..., ' 函数体 ')
Function 里面参数都必须是字符串格式
第三种方式执行效率低,也不方便书写,因此较少使用
所有函数都是 Function 的实例(对象)
函数也属于对象
代码演示:
<script>
        // new Function()
        var fn = new Function('a', 'b', 'console.log(a + b)');
        fn(1,2);
    </script>

1.2 函数的调用方式

1. 普通函数
2. 对象的方法
3. 构造函数
4. 绑定事件函数
5. 定时器函数
6. 立即执行函数

2. this

2.1 函数内 this 的指向

这些 this 的指向,是当我们调用函数的时候确定的。 调用方式的不同决定了this 的指向不同
一般指向我们的调用者.

2.2 改变函数内部 this 指向  

JavaScript 为我们专门提供了一些函数方法来帮我们更优雅的处理函数内部 this 的指向问题,常用
的有 bind()、 call()、apply() 三种方法。
1. call 方法
call() 方法调用 一个对象。简单理解为调用函数的方式,但是它可以改变函数的 this 指向。
fun.call(thisArg, arg1, arg2, ...)
thisArg:在 fun 函数运行时指定的 this 值
arg1,arg2:传递的其他参数
返回值就是函数的返回值,因为它就是调用函数
因此当我们想改变 this 指向,同时想调用这个函数的时候,可以使用 call,比如继承
代码演示:
    <script>
        // 1. call 方法
        var obj = {
            a : 1,
            b : 2,
            c : 3
        };
        function fn() {
            console.log(this.a + this.b + this.c);
        };
        fn.call(obj);
    </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值