JavaScript中函数的this绑定有哪四种方式,大家能说出吗?

更新于
2026-10-05 17:05:27
2阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2664个文字,预计阅读时间需要11分钟。

JavaScript中的this和函数息息相关,今天,我就详细地给大家讲一讲:函数中的this。

函数中的this,是一个非常让人晕晕乎乎的概念,很多抽象的概念就是从这里跑出来的。这里,我只说最核心的一点——函数。

函数中的this,是指函数执行时所处的上下文环境。这个上下文环境,可以是全局作用域、对象实例,也可以是函数内部定义的函数。

简单来说,当你调用一个函数时,JavaScript引擎会创建一个执行上下文(Execution Context),这个上下文包含了一些信息,比如函数的参数、局部变量、作用域链等。在这个上下文中,this关键字就代表了当前的执行环境。

下面,我们来通过几个例子来理解一下:

javascriptfunction sayHello() { console.log(this.name);}

var person={ name: 'Alice', sayHello: sayHello};

person.sayHello(); // 输出:Alice

在这个例子中,当我们调用`person.sayHello()`时,函数`sayHello`的执行上下文就是对象`person`,所以`this`指向了`person`,而`person`对象的`name`属性值为`'Alice'`,因此输出了`'Alice'`。

再来看一个例子:

javascriptfunction sayHello() { console.log(this.name);}

var person={ name: 'Alice', sayHello: sayHello};

var sayHello2=person.sayHello;sayHello2(); // 输出:undefined

在这个例子中,当我们将`person.sayHello`赋值给`sayHello2`变量时,`sayHello2`函数的执行上下文不再是对象`person`,而变成了全局作用域。

阅读全文
标签:四种

本文共计2664个文字,预计阅读时间需要11分钟。

JavaScript中的this和函数息息相关,今天,我就详细地给大家讲一讲:函数中的this。

函数中的this,是一个非常让人晕晕乎乎的概念,很多抽象的概念就是从这里跑出来的。这里,我只说最核心的一点——函数。

函数中的this,是指函数执行时所处的上下文环境。这个上下文环境,可以是全局作用域、对象实例,也可以是函数内部定义的函数。

简单来说,当你调用一个函数时,JavaScript引擎会创建一个执行上下文(Execution Context),这个上下文包含了一些信息,比如函数的参数、局部变量、作用域链等。在这个上下文中,this关键字就代表了当前的执行环境。

下面,我们来通过几个例子来理解一下:

javascriptfunction sayHello() { console.log(this.name);}

var person={ name: 'Alice', sayHello: sayHello};

person.sayHello(); // 输出:Alice

在这个例子中,当我们调用`person.sayHello()`时,函数`sayHello`的执行上下文就是对象`person`,所以`this`指向了`person`,而`person`对象的`name`属性值为`'Alice'`,因此输出了`'Alice'`。

再来看一个例子:

javascriptfunction sayHello() { console.log(this.name);}

var person={ name: 'Alice', sayHello: sayHello};

var sayHello2=person.sayHello;sayHello2(); // 输出:undefined

在这个例子中,当我们将`person.sayHello`赋值给`sayHello2`变量时,`sayHello2`函数的执行上下文不再是对象`person`,而变成了全局作用域。

阅读全文
标签:四种