我将如何重写没有__proto__

我正在使用Node.JSExpressJS 。 下面的代码用于扩展错误对象与我自己的消息,工作得很好,但我明白, __proto__是非标准的。

我将如何重写下面的代码没有__proto__

 var AccessDenied = exports.AccessDenied = function(message) { this.name = 'AccessDenied'; this.message = message; Error.call(this, message); Error.captureStackTrace(this, arguments.callee); }; AccessDenied.prototype.__proto__ = Error.prototype; 

使用Object.create()来创build新的原型对象,并添加一个不可枚举的construtor属性。

 AccessDenied.prototype = Object.create(Error.prototype, { constructor: { value: AccessDenied, writeable: true, configurable: true, enumerable: false } }); 

或者,如果你不关心constructor属性:

 AccessDenied.prototype = Object.create(Error.prototype); 
 "use strict"; /** * Module dependencies. */ var sys = require("sys"); var CustomException = function() { Error.call(this, arguments); }; sys.inherits(CustomException, Error); exports = module.exports = CustomException; 
 var AccessDenied = exports.AccessDenied = function ( message ) { /*...*/ }; var F = function ( ) { }; F.prototype = Error.prototype; AccessDenied.prototype = new F();