当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaScript Function bind()用法及代码示例


JavaScript 函数bind() 方法允许对象从其他对象借用方法而无需复制。

用法:

func.bind(thisArg, arg1, ... argN)

在这里,func 是一个函数。

参数:

bind() 方法包含:

  • thisArg- 提供的值this参数为func.如果使用创建绑定函数,则忽略它新的操作符。
  • arg1, ... argN(可选)- 在调用 func 时添加到提供给绑定函数的参数的参数。

注意:

  • setTimeout 中使用 thisArg 时,原始值将转换为对象。
  • 如果未指定 thisArg,则执行范围的 this 被视为 thisArg

返回:

  • 返回具有指定 this 值和初始参数(如果提供)的给定函数的副本。

示例:使用 bind()

this.x = 1; // "this" here is the global window object in browser

const obj = {
  x: 100,
  getX: function () {
    return this.x;
  },
};

console.log(obj.getX()); // 100

const retrieveX = obj.getX;
// the function gets invoked at the global scope
console.log(retrieveX()); // 1

//  Create a new function with 'this' bound to obj
//  global variable 'x' with obj's property 'x' are two separate entities
const boundGetX = retrieveX.bind(obj);

console.log(boundGetX()); // 100

输出

100
1
100

一旦方法与对象分开传递到某个地方 - this 就会丢失。从函数创建绑定函数,使用原始对象,巧妙地解决了这个问题

相关用法


注:本文由纯净天空筛选整理自 JavaScript Function bind()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。