Я пытаюсь создать подкласс / расширить собственный объект Date, не изменяя сам собственный объект.
Я пробовал это:
var util = require('util');
function MyDate() {
Date.call(this);
}
util.inherits(MyDate, Date);
MyDate.prototype.doSomething = function() {
console.log('Doing something...');
};
var date = new MyDate();
date.doSomething();
console.log(date);
console.log(date.getHours());
и это:
function MyDate() {
}
MyDate.prototype = new Date();
MyDate.prototype.doSomething = function() {
console.log("DO");
}
var date = new MyDate();
date.doSomething();
console.log(date);
В обоих случаях date.doSomething()
работает, но когда я вызываю любой из собственных методов, таких как date.getHours()
или даже console.log(date)
, я получаю 'TypeError: это не объект Date.'
Есть идеи? Или я застрял в расширении объекта Date верхнего уровня?