用另一个对象重写Javascript Whole Date对象

Overriding Javascript Whole Date Object with another Object

本文关键字:Whole Date 对象 Javascript 重写 一个对象      更新时间:2023-09-26

我实现了另一个对象,比如js内置的Date对象。如何用我的对象替换Date?示例(必须使用MyDate()而不是Date):

var date= new Date();

(因为我有很多使用该对象的js文件,并且我需要基于另一个日期标准的obj。)

替换内置的Date对象是个坏主意。请参阅本文:https://www.nczonline.net/blog/2010/03/02/maintainable-javascript-dont-modify-objects-you-down-own/

如果你真的想这样做,你可以用和其他对象一样的方法:

Date = MyDate;

try:

window.Date = 4; // or something else

但正如@Gothdo所说,这是一个坏主意,如果在某个地方使用Date对象,可能会破坏整个应用程序。。。


假设您的代码运行在浏览器环境中(不同于节点和其他环境):

每个全局变量都只是一个窗口属性,因为主作用域是窗口作用域。。。所以,当你输入var now = new Date();时,实际上,你输入的是var now = new window.Date();,它只是一个缩写;

因此,如果您想更改Date对象,您可以同时执行以下操作:

  1. window.Date = 4
  2. Date = 4

你自己试试。唯一的区别在于如何按照javascript作用域链解析变量。