JS厉害的帮我解释下这个函数!谢谢
HTML code
function floaters() {
this.items = [];
this.addItem = function(id,x,y,content)
{
document.write('<DIV id='+id+' style="Z-INDEX: 10; POSITION: absolute;width:80px; height:60px;left:'+(typeof(x)=='string'?eval(x):x)+';top:'+(typeof(y)=='string'?eval(y):y)+'">'+content+'</DIV>');
var newItem = {};
newItem.object = document.getElementById(id);
newItem.x = x;
newItem.y = y;
this.items[this.items.length] = newItem;
}
this.play = function()
{
collection = this.items
setInterval('play()',30);
}
}
这里this.items = [];是什么意思?this.items[this.items.length] 这里this.items.length是多少?
2this.play = function(){}和function play(){}什么区别的?
------解决方案-------------------- 这里this.items = [];是什么意思?
//定义一个空数组
this.items[this.items.length] 这里this.items.length是多少?
//这个数组的长度,这句话表示给这个数组添加一个元素
this.play = function(){}和function play(){}什么区别的?
//this.play = function.. 表示给当前类添加一个方法,另外一个是定义一个函数
------解决方案-------------------- 这是类似于面向对象语言的类和方法以及属性的写法
另外:这个样写定义了过多的实例方法,用prototype定义方法原型应该更节省内存空间。
------解决方案-------------------- this是对象引用吧
------解决方案-------------------- 探讨 this.items[this.items.length] 这里this.items.length是多少? //这个数组的长度,这句话表示给这个数组添加一个元素 ---------- 那就是this.items.length=0?
------解决方案-------------------- 这里定义了一个floaters类,其中有一个属性是items 他是一个数组,没有初值,addItem 和play 是这个类的两个方法
addItem 方法用来生成div对象,并把对象储存在items 属性中,div的id,及left top style属性由形参给出
div的内容也由形参给出
play方法是把生成的div对象数组付给collection
你的这段代码还有其他的马,贴出来看看
------解决方案-------------------- 是一样的,在FUNCTION就相当与var,
this.play=function().. 是直接量
------解决方案-------------------- function play()
var play=function()
var play=new Function{}
三个都是一样的