ES2 MUD LIB :: 東方故事二(ES2) 天朝帝國 mudlib 瀏覽展示

/doc/efuns/bind

HOME :: doc :: efuns :: bind

     bbbbiiiinnnndddd((((3333))))                MMMMuuuuddddOOOOSSSS ((((22222222 JJJJaaaannnn 1111999999995555))))                bbbbiiiinnnndddd((((3333))))

     NNNNAAAAMMMMEEEE
          bind() - change the owner of a function pointer

     SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
          function bind(function f, object ob)

     DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
          Returns a function pointer that is exactly the same as f,
          but belongs to the object 'ob' instead of the object that
          created f.  Useful if the creator of 'f' has been
          destructed, or f is an efun pointer to an efun which does
          something to 'this_object'.

          For example:

          void make_living(object ob) {
             function f;

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

             evaluate(f); }

          The effect of the above is the same as if 'ob' itself had
          evaluated the enable_commands() efun.  Note that there are
          security risks involved in this, as bind() allows you to
          force another object to run a piece of code.  To protect
          against this, there is a valid_bind() master apply which
          must return 1 or the call to bind() will fail.

     Page 1                                          (printed 3/16/95)

HOME :: doc :: efuns :: bind