javascript:将参数传递给对象构造函数

标签 javascript object arguments

我正在编写一个 jquery 库,我需要实现 Datetime 函数。 我需要创建一个返回新日期对象的 .Date() 函数。

如何将我的 .Date(args) 函数的参数传递给 Date 对象构造函数以便创建一个新的日期对象?

我试过这样的东西,我是插件命名空间,me=$.jqGUI。

        //.Date(Value)
        /* Return a date object.
         * ReturnValue = Date(Value)
         */
        me.Date = function(Value){
            //pass arguments to Date constructor
            var sDate = Date.prototype.constructor.apply(null, arguments);

            console.log(sDate);

            //create a date object d
            var d = new Date(sDate);

            //validate date object
            if(d.toDateString()=="Invalid Date"){
                throw new Error("$.jqGUI.Date: Invalid Date");
            }
            else{
                return d;                   
            }
        };

这里我将参数传递给 Date.prototype.constructor 但无论如何我都会得到当前日期。 如果 arguments 是一个日期字符串,它会被忽略。 为什么?

最佳答案

var args = Array.prototype.concat.apply([null], arguments);
return new (Function.prototype.bind.apply(Date, args));

如果您的目标浏览器不支持 ECMAScript 5 Function.prototype.bind,代码将无法运行。虽然不太可能,请参阅 compatibilty table .

关于javascript:将参数传递给对象构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11408722/

相关文章:

Java 对象赋值

c++ - 带有模板化参数函数的模板化成员变量上的错误 C2244,仅发生在 Visual Studio 上

javascript - 如何获取/获取函数的所有参数?

javascript - 在两个数组中查找匹配值

java - 类描述中要写什么

javascript - 如何在方法中访问局部变量的状态 - Vue?

java - 有没有办法迭代二维 ArrayList 并调用对象的类方法?

java - 如何将命令行参数包含 "|"传递给 java 程序

javascript - ListViewItem 上的右键单击和上下文菜单事件

javascript - Javascript如何调用外部文件的函数?