bind(3) LP MudOSv21c7 (7 Jul 1996)函数名称: bind() - 变更一个函式指标 (function pointer) 所指向的 函式.函数语法: function bind( function f, object ob ) 函式指标 bind( 函式 f, 物件 ob )函数用法: 传回一个指向 f 的函式指标, 但是指标属於物件 ob , 而不是创造 f 的物件. 如果 f 的创造者被摧毁、f 是一个超越函式 (emulated function, 即 efun) 的 指标、或是指标指向的超越函式会对 this_object 做 一些处理时, bind() 就很有用. □例: void make_living(object ob) { function f; f = bind( (: enable_commands :), ob ); evaluate(f); } 以上例子的作用, 相当於物件 ob 自己处理 enable_commands() 的超越函式. 注意 !! 这个例子会引 发一些系统安全上的风险, 因为 bind() 可以让你强迫其 他的物件执行一段程式码. 为了要防止 bind() 被滥用, 有一个主宰物件函式 (master apply) valid_bind() 可 以用来决定 bind() 的执行与否. 呼叫 bind() 时, 如果 valid_bind() 传回 1 即可执行, 传回 0 就无法执行.手册翻译: Phoebus@ZH 1997.Aug.16. (Writen 5/23/97)