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)