手册

目录

函数绑定

收藏894

阅读599

更新时间2025-08-07

函数借用(Function Borrowing)

通过使用 bind() 方法,一个对象可以从另一个对象借用一个方法。

下面的例子创建了 2 个对象(person 和 member)。

member 对象借用了 person 对象的 fullname 方法:

实例

const person = {
  firstName:"Bill",
  lastName: "Gates",
  fullName: function () {
    return this.firstName + " " + this.lastName;
  }
}

const member = {
  firstName:"Hege",
  lastName: "Nilsen",
}

let fullName = person.fullName.bind(member);
运行实例 »

点击 "运行实例" 按钮查看在线实例

保留 this

有时必须使用 bind() 方法来防止丢失 this

在下面的例子中,person 对象有一个 display 方法。在 display 方法中,this 指的是 person 对象:

实例

const person = {
  firstName:"Bill",
  lastName: "Gates",
  display: function () {
    let x = document.getElementById("demo");
    x.innerHTML = this.firstName + " " + this.lastName;
  }
}

person.display();
运行实例 »

点击 "运行实例" 按钮查看在线实例

当函数用作回调时,this 会丢失。

这个例子将尝试在 3 秒后显示人名,但它会显示 undefined

实例

const person = {
  firstName:"Bill",
  lastName: "Gates",
  display: function () {
    let x = document.getElementById("demo");
    x.innerHTML = this.firstName + " " + this.lastName;
  }
}

setTimeout(person.display, 3000);
运行实例 »

点击 "运行实例" 按钮查看在线实例

bind() 方法解决了这个问题。

在下面的例子中,bind() 方法用于将 person.display 绑定到 person。

此例将在 3 秒后显示人名:

实例

const person = {
  firstName:"Bill",
  lastName: "Gates",
  display: function () {
    let x = document.getElementById("demo");
    x.innerHTML = this.firstName + " " + this.lastName;
  }
}

let display = person.display.bind(person);
setTimeout(display, 3000);
运行实例 »

点击 "运行实例" 按钮查看在线实例

什么是 this?

在 JavaScript 中,this 关键字引用对象

引用哪个对象取决于调用(使用或调用)的方式。

根据其使用方式,关键字 this 引用不同的对象:

  • 在对象方法中,this 引用该对象
  • 单独使用时,this 引用全局对象
  • 在函数中,this 引用全局对象
  • 在函数中,在严格模式下,thisundefined
  • 在事件中,this 引用接收事件的元素
  • call()、apply() 和 bind() 等方法可以将 this 引用到任何对象

注意:this 不是变量。它是一个关键字。您无法修改 this 的值。

另请参阅:

教程:JavaScript this

相关

视频

RELATED VIDEOS

更多

免费

Web前端开发极速入门
初级 Web前端开发极速入门

219920次学习

收藏

免费

前端入门_HTML5
初级 前端入门_HTML5

616946次学习

收藏

免费

30分钟学会网站布局
初级 30分钟学会网站布局

238440次学习

收藏

免费

CSS视频教程-玉女心经版
初级 CSS视频教程-玉女心经版

393054次学习

收藏

免费

独孤九贱(1)_HTML5视频教程

免费

独孤九贱(6)_jQuery视频教程

免费

独孤九贱(7)_Bootstrap视频教程

免费

独孤九贱(2)_CSS视频教程
初级 独孤九贱(2)_CSS视频教程

229605次学习

收藏

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

70.9万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号