繁体   English   中英

如何创建像Date()这样的JavaScript对象?

[英]How to create a javascript object like Date()?

我想知道如何创建一个对象,例如MyObject(),当我们+(new MyObject())时,它可以像javascript Date对象一样工作:

var a = new Date();
alert(+a);

您的对象需要有一个valueOf方法,如下所示:

var f=new function(){
    this.valueOf=function(){
        return 5;
    }
};
alert(+f); // Displays 5

如果不想按注释建议在对象上而是在其prototype上定义方法,请使用以下方法:

function MyObject(value){
    this.value = value;
}
MyObject.prototype.valueOf = function(){
    return this.value
}

var o = new MyObject(17);
alert(+o); // Displays 17

创建一个函数,此函数将更改this属性。 使用function(){}定义函数后,请使用prototype向其添加方法。

通常,使用new关键字创建的函数的实例将返回一个Object,该Object表示已定义函数中的this 定义toString方法时,从字符串上下文(默认为[object Object]调用时,该函数将显示自定义字符串。

例:

function MyClass(value){
     this.value = value
     this.init_var = 1;
}
MyClass.prototype.getInitVar = function(){
    return this.init_var;
}
MyClass.prototype.setInitVar = function(arg_var){
    this.init_var = arg_var;
}
MyClass.prototype.toString = function(){
    return "This class has the following property: " + this.init_var;
}

var class_instance = new MyClass();
class_instance.setInitVar(3.1415);
alert(class_instance)

这是解决方案,

var MyObject = Date;
var b= new MyObject();
alert(+b) //It will display the current date in milliseconds;

希望这对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM