我试图通过使用getTime对象的原型继承/获取对Date对象的所有属性/方法的访问权限,但我遗漏了一些东西。请指出正确的方向。
//empty constructor
function getTime(){}
//attempt to inherit all of the properties and methods of Date object
getTime.prototype = new Date();
//create a new Date object and test
//this works
var wt = new Date();
alert(wt);
//create a new getTime object and test.
//I was uner the impression that getTime object
//now has access to all the properties/methods of the Date object.
//'This generates:TypeError this is not a Date object.'
var wt2 = new getTime();
alert(wt2.getHours());
答案 0 :(得分:1)
访问Date对象的原型实际上正在工作,但这些方法希望处理Date类型的对象。更多详情:https://stackoverflow.com/a/7141488/2847629
答案 1 :(得分:0)
我认为你的getTime
构造的对象 可以访问Date对象的所有属性/方法。如果没有,则错误类似于getHours is not a function
(因为它将是未定义的)。
我不确定如何实现Date对象的getHours
方法,但JavaScript确实有hasOwnProperty
方法。如果Date对象是您在JavaScript中实现的,那么您可以编写其getHours
方法来检查它被调用的对象(在您的示例中为wt2
)是否已定义属性本身(而不是原型对象)。
Date对象的getHours
方法可能正在做类似的事情。