请看这段javascript是什么意思,谢谢。在线等

来源:百度知道 编辑:UC知道 时间:2024/06/04 06:05:50
today=new Date();
function date()
{
this.length=date.arguments.length
for(var i=0;i<this.length;i++)
this[i+1]=date.arguments[i];
}
var d=new date("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
提问:1。这里的function是构造函数吗?里面的arguments是什么。2。这里的d是什么。请真正看懂的高手说说。谢谢
1、你都说了“new了一个自己写的date的实例”那还不是相当于实例化了一个date类型的变量d。如果是普通变量为什么还用new关键字。
2、还有一个问题,函数当中的date.arguments.length中的date到底是什么,我试了一下,去掉也可以的。
3、我查了课本,书上所js也有构造函数一说的

var d是个变量。。。。

function就是个普通函数而已js中没有所谓构造函数,如果要用的话可以自己定义一个函数在new某个js类时候执行的函数

arguments就是这个函数里面的参数咯,固定格式,你就随便写个function他里面就已经有arguments这个属性了,而由于js是弱变量类型的语言所以date.arguments又可以作为一个整体当做一个var,而var中可以是数组也可以不是,如果你让他做数组,数组是有个属性叫做length的

这个整个意思就是他先new了一个js内置的Date的实力,但是没看到哪里用到了
然后自己又写了一个date函数,这里的this指的是date这个函数,也就是说让date的参数的length等于这个function自己实例的length
然后用个循环让date的实例中(前面说过了可以让这个实例当数组的)第i+1个元素等于第i个参数
然后后面就new了一个自己写的date的实例出来并且传了一堆星期几进去,这样就很明显了,他是想让d里面的第1个元素等于星期一而已,不过这个写的不够虚伪,虚伪的书写方法可以让你根本不知道他干什么

比如我可以
var Class = {
create : function() {
return function() {
this.initialize.apply(this, arguments);
}
}
}

然后后面创建对象
var date= Class.create();
date.prototype = {
initialize: function(date) {
this.date= date;

},
do: function() {
for(var i=0;i<this.length;i++)
this.date[i+1]=this.arguments[i];
}