日期:2014-05-18  浏览次数:20461 次

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{}
三个都是一样的