# bindAll (Lodash 兼容性)

将对象的方法绑定到对象本身。

```typescript
const boundObject = bindAll(object, methodNames);
```

## 用法

### `bindAll(object, ...methodNames)`

当您想要将特定方法的 `this` 值固定到该对象时，请使用 `bindAll`。当将方法作为事件处理程序或回调函数传递时，这对于维护 `this` 上下文很有用。

```typescript
import { bindAll } from 'es-toolkit/compat';

const view = {
  label: 'docs',
  click: function () {
    console.log('clicked ' + this.label);
  },
};

// 将方法绑定到对象
bindAll(view, 'click');
document.addEventListener('click', view.click);
// => 点击时输出 'clicked docs'
```

您可以一次绑定多个方法。

```typescript
import { bindAll } from 'es-toolkit/compat';

const obj = {
  name: 'example',
  greet() {
    return `Hello, ${this.name}!`;
  },
  farewell() {
    return `Goodbye, ${this.name}!`;
  },
};

// 使用数组绑定多个方法
bindAll(obj, ['greet', 'farewell']);

const greet = obj.greet;
greet(); // 'Hello, example!' (this 已正确绑定)
```

它可以处理数字和特殊键。

```typescript
import { bindAll } from 'es-toolkit/compat';

const obj = {
  '-0': function () {
    return 'negative zero';
  },
  '0': function () {
    return 'zero';
  },
};

bindAll(obj, -0);
obj['-0'](); // 'negative zero'
```

#### 参数

- `object` (`Object`): 要绑定方法的对象。
- `...methodNames` (`Array<string | string[] | number | IArguments>`): 要绑定的方法名。可以指定为单独的字符串、数组、数字或 Arguments 对象。

#### 返回值

(`Object`): 返回已绑定方法的原始对象。
