我正在尝试子类化/扩展本机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());
Run Code Online (Sandbox Code Playgroud)
还有这个:
function MyDate() {
}
MyDate.prototype = new Date();
MyDate.prototype.doSomething = function() {
console.log("DO");
}
var date = new MyDate();
date.doSomething();
console.log(date);
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,date.doSomething()工作,但当我调用任何本地方法,如date.getHours()甚至console.log(date),我得到'TypeError:这不是一个Date对象.
有任何想法吗?还是我坚持扩展顶级Date对象?