當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。