网络游戏《天下》 管理员手册

MudOS v21c2



	bind(3)			MudOS v21c2		(5 Sep 1994)

	名称:
		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  就无法执行.
	翻译:
		Spock @ FF	96.Oct.16.		(printed 3/16/95)