【发布时间】:2011-08-29 20:01:26
【问题描述】:
我正在尝试继承/扩展原生 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: this is not a Date object”。
有什么想法吗?还是我坚持扩展顶级 Date 对象?
【问题讨论】:
标签: javascript inheritance date node.js