Home >Web Front-end >JS Tutorial >JavaScript design pattern seven: Decorator pattern

JavaScript design pattern seven: Decorator pattern

不言
不言Original
2018-04-02 14:13:151053browse

This article shares with you the seventh JavaScript design pattern: Decorator pattern. Friends who are interested can take a look at

Decorator pattern

The Decorator pattern provides more flexibility than inheritance. alternatives. Decorators are used to wrap objects with the same interface and add new functions in the form of overloaded methods. This mode can add your own behavior before or after the decorated object to achieve a specific purpose.
Simple understanding: The way of dynamically adding responsibilities to an object is called the decorated mode.
Give a simple example:

var xiaoming = function () {
  this.run = function () {
    return '跑步'
  },
  this.eat = function () {
    return: '吃饭'
  }
}
// 小明可以跑步,也可以吃饭
// 下面是一个装饰类,给小明进行装饰
var decor = function (xiaoming) {
  this.run = function () {
    return xiaoming.run + '很快'
  }
  this.eat = function () {
    return xiaoming.eat + '很多'
  }
}

Through a decoration class, the decoration of Xiao Ming class is realized.

Summary

The decorator pattern is a way to dynamically add more functions to existing functions. Put each function to be decorated in a separate function, and then use that function Wraps the existing function object to be decorated. Therefore, when special behavior needs to be performed, the calling code can selectively and sequentially use the decoration function to wrap the object as needed. The advantage is that the core responsibilities of the class (function) and the decoration function are separated

Related recommendations:

JavaScript Design Pattern Series 2: Singleton Pattern

JavaScript Design Pattern Series 4: Prototype Mode

JavaScript Design Pattern Series 6: Bridge Mode

The above is the detailed content of JavaScript design pattern seven: Decorator pattern. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn