下面是我想要做的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,因为我认为搞乱/改变全局变量是糟糕的编程习惯.
解决方法
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一起使用.
此外,要解决直接延长日期的问题:
扩展本机对象是经常进行的. MooTools使用他们自己的.implement方法来做它:
https://github.com/mootools/mootools-more/blob/master/Source/Types/Date.js#L55
有关扩展本机的教程:
编辑:
还有一篇关于延伸当地人的假定弊端的文章:http://perfectionkills.com/extending-built-in-native-objects-evil-or-not/
原文地址:https://www.jb51.cc/js/157418.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。