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 toString()用法及代碼示例
- JavaScript Function apply()用法及代碼示例
- JavaScript Function call()用法及代碼示例
- JavaScript Function.displayName屬性用法及代碼示例
- JavaScript Function.name用法及代碼示例
- JavaScript Function.length用法及代碼示例
- JavaScript Function.length屬性用法及代碼示例
- JavaScript Object valueOf()用法及代碼示例
- JavaScript Uint8Array.of()用法及代碼示例
- JavaScript Number.isSafeInteger()用法及代碼示例
- JavaScript Math abs()用法及代碼示例
- JavaScript 正則 \xdd用法及代碼示例
- JavaScript BigInt.prototype.toString()用法及代碼示例
- JavaScript DataView.getInt16()用法及代碼示例
- JavaScript Symbol.keyFor()用法及代碼示例
- JavaScript handler.has()用法及代碼示例
- JavaScript JSON.stringify()用法及代碼示例
- JavaScript Symbol.split屬性用法及代碼示例
- JavaScript Date getYear()用法及代碼示例
- JavaScript Date.UTC()用法及代碼示例
注:本文由純淨天空篩選整理自 JavaScript Function bind()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。