---
layout: doc
title: functions / bind
---
# bind

### 名称

    bind() - 改变一个函数指针的所属对象

### 语法

    function bind(function f, object ob)

### 描述

    返回一个和函数指针 `f` 完全相同的函数指针，但是所属对象从创建 `f` 的对象变为 `ob`。这在函数 `f` 的创建者被摧毁或 `f` 是需要由其它对象调用的外部函数时非常有用。

    示例:
```c
    void make_living(object ob)
    {
        function f;

        f = bind((: enable_commands :), ob);

        evaluate(f);
    }
```
    以上示例的效果和由对象 `ob` 自己执行 enable_commands() 外部函数完全一样。因为 bind() 允许你强制其它对象执行一些代码，这会造成一些安全风险，为了防止被滥用，需要 MASTER 对象中的 valid_bind() apply 方法返回1，否则 bind() 无法执行。

### 翻译 ###

    雪风(i@mud.ren)
