defalias与advice+:override使用上的区别?

有的时候需要微改一些第三方包的函数,之前用的是定义新函数+advice-add :override的方式。

突然想到Elisp有个内置的函数defalias,不知道和advice有何使用上的区别?

defalias只是取个别名吧,不能修改代码。

advice还能deactivate找回来。advice有自己的一套frame,储存旧函数,组装并替换新函数。用defalias的话原来定义的引用就丢了,实际上defun就是用defalias实现的。

2 个赞

(defalias 'origin-func 'my-func) 这样就可以在使用origin-func时改为启动my-func