是否有理由使用__proto__而不是setPrototypeOf

时间:2017-01-03 10:21:41

标签: javascript node.js express

我正在阅读express 4的源代码,这是非常新的,并且有以下代码:

var proto = module.exports = function(options) {
  var opts = options || {};

  function router(req, res, next) {
    router.handle(req, res, next);
  }

  // mixin Router class functions
  router.__proto__ = proto;
         ^^^^^^^^^

  router.params = {};
  router._params = [];
  router.caseSensitive = opts.caseSensitive;
  router.mergeParams = opts.mergeParams;
  router.strict = opts.strict;
  router.stack = [];

  return router;
};

我想知道他们使用__proto__而不是setPrototypeOf是否有任何理由,除了能够在早于ECMAScript 5.1(ECMA-262)的JS引擎上运行express? / p>

1 个答案:

答案 0 :(得分:1)

这是因为遗留支持问题。请参阅:https://github.com/expressjs/express/issues/2613