Bind

来自MudWiki

名称

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

语法

   function bind(function f, object ob)

描述

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

   示例:

   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)