为什么在javascript中的module.export函数中分配了一个变量'this'

Why is a variable assigned 'this' in module.export function in javascript

我试图理解从 feathersjs 应用程序中创建的服务中获取的以下代码。

// Initializes the `users` service on path `/users`
const createService = require('feathers-knex');
const createModel = require('../../models/users.model');
const hooks = require('./users.hooks');
const filters = require('./users.filters');

module.exports = function () {
  const app = this;
  const Model = createModel(app);
  const paginate = app.get('paginate');

  const options = {
    name: 'users',
    Model,
    paginate
  };

  // Initialize our service with any options it requires
  app.use('/users', createService(options));

  // Get our initialized service so that we can register hooks and filters
  const service = app.service('users');

  service.hooks(hooks);

  if (service.filter) {
    service.filter(filters);
  }
};

然后按如下方式导入此文件:

// many requires..
const feathers = require('feathers');
// more requires
const services = require('./services');
// other requires
const app = feathers();

谁能解释一下这条线是什么

const app = this

在创建服务的代码中做什么?

它将 this 的值分配给一个变量(好吧,一个常量),其名称比 this 更清楚地描述了该值。它旨在使代码更易于维护人员理解。