相关疑难解决方法(0)

如何扩展Javascript Date对象?

我正在尝试子类化/扩展本机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对象?

javascript inheritance date node.js

22
推荐指数
3
解决办法
1万
查看次数

标签 统计

date ×1

inheritance ×1

javascript ×1

node.js ×1