第十三天易忘知识点-JS

day13

函数内部属性

arguments:类数组对象,包含了函数传入的所有参数,arguments有一个成员callee,表示正在运行中的函数本身,通过使用改成员可以实现匿名递归

this:面向对象语言中 this 表示当前对象的一个引用。
但在 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变。

  • 在方法中,this 表示该方法所属的对象。
  • 如果单独使用,this 表示全局对象。
  • 在函数中,this 表示全局对象。
  • 在事件中,this 表示接收事件的元素。
  • 在显式函数绑定时,我们可以自己决定this的指向

IIFE

IIFE: Immediately Invoked Function Expression,意为立即调用的函数表达式,也就是说,声明函数的同时立即调用这个函数。
作用:
- 页面加载完成后只执行一次的设置函数。
- 将设置函数中的变量包裹在局部作用域中,不会泄露成全局变量。
写法:

(function(形参){
    函数体内容
})(实参);

函数的调用

  • 函数名(实参列表);

  • 函数名.call(执行环境对象,实参列表);

  • 函数名.apply(执行环境对象,实参列表数组);

  • 函数名.bind(执行环境对象)(实参列表);

call和apply可以改变this的指向,并且是立即执行函数,但是bind是返回一个函数,通过调用返回的这个函数才会执行函数

闭包

闭包就是指有权访问另一个函数作用域中的变量的函数。
闭包的生成有三个必要条件
- 函数嵌套函数

  • 内部函数引用了外部函数中的数据(属性、函数)

  • 参数和变量不会被回收

点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注