返回
原生JS函数轻松搞定,轻松理解arguments、call、apply、bind、闭包、构造函数和ES6箭头函数
前端
2023-09-13 19:22:06
原生JS函数定义与调用
原生JS函数的定义方式有两种:
- 函数声明 :使用
function
声明函数,如下所示:
function myFunction() {
// 函数体
}
- 函数表达式 :使用匿名函数的方式定义函数,如下所示:
const myFunction = function() {
// 函数体
};
原生JS函数的调用方式有三种:
- 普通调用 :直接调用函数,如下所示:
myFunction();
- 作为参数传递 :将函数作为参数传递给其他函数,如下所示:
function higherOrderFunction(callback) {
callback();
}
higherOrderFunction(myFunction);
- 作为对象的方法调用 :将函数作为对象的方法调用,如下所示:
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函数。