gpt4 book ai didi

javascript - 如何继承Javascript Date 对象?

转载 作者:数据小太阳 更新时间:2023-10-29 04:48:33 29 4
gpt4 key购买 nike

我正在尝试创建继承自 Date 对象的对象。

下面是我正在尝试做的事情的 Firebug 记录。

>>> date_son = Object.create( Date )
Function {}
>>> typeof date_son
"object"
>>> date_son.gettime
undefined
>>> date_son.prototype.getTime
getTime()

我使用 Object.create 创建一个继承自 Date 的对象 date_son。 getTime 函数/属性在 date_son.protype 上可用,但在 date_son 对象本身上不可用。

我显然做错了什么。谁能指出正确的方向,说明如何创建一个继承自 Date 的对象,以便 date_son.getTime() 在 date_son 对象上可用。

我不希望直接扩展 Date,因为我认为弄乱/更改全局变量是不好的编程习惯。

最佳答案

Mozilla (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date) 在 MDN 文档上有一条注释:

Note: Note that Date objects can only be instantiated by calling Date or using it as a constructor; unlike other JavaScript object types, Date objects have no literal syntax.

Object.create 在给定参数时需要一个实例。 Date 本身不是实例,因此不能与 Object.create 一起使用。

此外,要解决直接扩展 Date 的问题:

扩展 native 对象是经常做的事情。例如,MooTools 使用他们自己的 .implement 方法来做到这一点:

https://github.com/mootools/mootools-more/blob/master/Source/Types/Date.js#L55

关于扩展原生的教程:

http://net.tutsplus.com/tutorials/javascript-ajax/quick-tip-how-to-extend-built-in-objects-in-javascript/

编辑:

还有一篇关于扩展 native 的假定邪恶的文章:http://perfectionkills.com/extending-built-in-native-objects-evil-or-not/

关于javascript - 如何继承Javascript Date 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7141412/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com