javascript - 有没有一种简单的方法可以用简单的英语来理解 JavaScript 的 .bind ?

标签 javascript

我看过文档.. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind 但我似乎不明白 .bind 在纯 Vanilla JavaScript 中作为一个概念。

有人可以解释一下吗?我看过代码示例,但这个主题我很难理解它的实际含义。

这个问题我确实感觉不同,因为我想从概念的 Angular 来理解它,而不仅仅是代码示例。例如,如果我有一个花园对象,并且添加了一个名为 make apples 的函数,它将生成 1 个苹果。如果我有一个名为 make Oranges 的函数,它将返回 1 个橙子。绑定(bind)是什么意思,请简单介绍一下。 JavaScript 对我来说非常困难,我的进步很慢,而且我正在努力理解绑定(bind)概念。

最佳答案

bind 允许您更改函数中 this 的值。 bind 还创建了一个新函数。

var cat = {
	name: 'cat',
  whatIsThis(){
  	console.log('this is ' + this.name)
  }
}
var dog = {
	name: 'dog',
  whatIsThis(){
  	console.log('this is ' + this.name)
  }
}

cat.whatIsThis()// this is cat

dog.whatIsThis()// this is dog

var func = cat.whatIsThis.bind(dog)

func()// this is dog

cat.whatIsThis()// this is cat

关于javascript - 有没有一种简单的方法可以用简单的英语来理解 JavaScript 的 .bind ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47369784/

相关文章:

javascript - 为什么这个 xhtml 表单无法验证?

javascript - 覆盖或删除 React 组件的样式

javascript - XMLHttpRequest 的替代品?

javascript - 无法从 Node.js 连接到 MongoDB

javascript - HTTP 无法识别正文

javascript - Angular v1.2.25错误 "fnPtr is not a function"

javascript - 在不复制的情况下通过 WebSocket 发送 ArrayBuffer 的子段

javascript - 在easeljs中添加一个简单的图像

JavaScript 循环和数组

javascript - 将 JS 对象的值保存为标记