2014-01-14 68 views
3

C-H添加F-鉤爲什麼add-hook允許`hook'無效?

HOOK should be a symbol, and FUNCTION may be any valid function. If 
HOOK is void, it is first set to nil. If HOOK's value is a single 
function, it is changed to a list of functions. 

,並從代碼:

(defun add-hook (hook function &optional append local) 
    ... 
    (or (boundp hook) (set hook nil)) 
    (or (default-boundp hook) (set-default hook nil)) 
    ... 

這是什麼好處?我認爲這是有用的,否則它不會在那裏......我只是想不出它的好用處......

回答

5

它允許你在定義它們的包之前設置鉤子變量加載。

+1

mgalgs:請注意,它是被設置爲「nil」(即空列表)的掛鉤變量的*值*。所以它只是在變量無效時初始化該變量。 – phils

+0

有道理。否則,我們會在整個地方加載「eval-after-load」,或者必須非常小心地在我們的init文件中進行排序。 – mgalgs