js里的装饰者模式

装饰者模式

装饰者模式的定义:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。

动态地将责任附加到对象上,在JS这个动态语言里是比喝水还平常不过的事,而函数又是一种特殊的对象,所以在这里,装饰者模式的含义其实可以翻译为:在不改变原函数的基础上给函数添加新的方法

这里最熟悉的例子就是事件的onxxx绑定法:

btn.onclick = () => {
    console.log(1);
};

这个按钮被绑定了一个点击事件,如果要用同样的方法绑定第二个事件,就得新建一个函数,将原来的函数调用后再执行新添加的语句:

const oldClick = btn.onclick;
btn.onclick = () => {
    oldClick();
    console.log(2);
};

类似地可以用这个方法对所有的函数都进行扩展。

上一篇:[Android Studio] 如何在Button控件中实现包边效果


下一篇:2021.7.8今日小结