返回

原生JS函数轻松搞定,轻松理解arguments、call、apply、bind、闭包、构造函数和ES6箭头函数

前端

原生JS函数定义与调用

原生JS函数的定义方式有两种:

  1. 函数声明 :使用function声明函数,如下所示:
function myFunction() {
  // 函数体
}
  1. 函数表达式 :使用匿名函数的方式定义函数,如下所示:
const myFunction = function() {
  // 函数体
};

原生JS函数的调用方式有三种:

  1. 普通调用 :直接调用函数,如下所示:
myFunction();
  1. 作为参数传递 :将函数作为参数传递给其他函数,如下所示:
function higherOrderFunction(callback) {
  callback();
}

higherOrderFunction(myFunction);
  1. 作为对象的方法调用 :将函数作为对象的方法调用,如下所示:
const obj = {
  myFunction: function() {
    // 函数体
  }
};

obj.myFunction();

arguments对象

arguments对象是一个类数组对象,它包含了函数被调用时传递的所有参数。arguments对象具有以下属性和方法:

  • length:返回arguments对象中参数的数量。
  • callee:返回调用当前函数的函数。

call、apply和bind方法

call()apply()bind()方法都是用来改变函数的this指向的。

  • call()方法:将函数的this指向显式地设置为指定的对象,并立即执行函数。
  • apply()方法:与call()方法类似,但参数列表是通过数组的形式传递的。
  • bind()方法:将函数的this指向显式地设置为指定的对象,但不立即执行函数,而是返回一个新的函数。

闭包

闭包是指能够访问其他函数作用域中变量的函数。闭包经常用于封装数据和实现私有变量。

构造函数

构造函数是用于创建对象的函数。构造函数的名称通常以大写字母开头,如下所示:

function Person(name, age) {
  this.name = name;
  this.age = age;
}

要使用构造函数创建对象,可以使用new关键字,如下所示:

const person = new Person('John Doe', 30);

ES6箭头函数

ES6箭头函数是ES6中引入的一种新的函数语法。箭头函数的语法如下所示:

(parameters) => {
  // 函数体
}

箭头函数与传统函数相比,具有以下特点:

  • 箭头函数没有自己的this关键字,而是继承外层函数的this关键字。
  • 箭头函数不能使用arguments对象。
  • 箭头函数不能使用yield关键字。

结语

原生JS函数是JavaScript中非常重要的一个概念,掌握原生JS函数的使用技巧可以帮助您编写出更加健壮和灵活的代码。希望本文能够帮助您更好地理解原生JS函数。