typeof(collection[i].x)=='string'?eval(collection[i].x):collection[i].x 函数的意思

typeof(collection[i].x)=='string'?eval(collection[i].x):collection[i].x 函数的意思
类似这样的函数

JavaScript code?1 typeof(collection[i].x)=='string'?eval(collection[i].x):collection[i].x

因为eval这个函数感觉一直都是加不加没什么用。
我想知道eval(collection[i].x)和collection[i].x有什么区别
——————
再问下这个函数
this.items[this.items.length] = newItem;
是将一个数组赋给一个变量
例如this.items[3]这样的感觉不能成为一个数组
——————
代码如下

JavaScript code?<script language="javascript"> 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:30px;                                                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()',10);     } }   function play() {     if(screen.width <= 800)     {         for(var i = 0; i<collection.length;i++)         {             collection[i].object.style.display = 'none';         }         return;     }     for(var i=0;i<collection.length;i++)     {         var followObj = collection[i].object;         var followObj_x = (typeof(collection[i].x)=='string'?eval(collection[i].x):collection[i].x);         var followObj_y = (typeof(collection[i].y)=='string'?eval(collection[i].y):collection[i].y);         if(followObj.offsetLeft!=(document.body.scrollLeft+followObj_x))         {             var dx=(document.body.scrollLeft+followObj_x-followObj.offsetLeft)*delta;             dx=(dx>0?1:-1)*Math.ceil(Math.abs(dx));             followObj.style.left=followObj.offsetLeft+dx;         }         if(followObj.offsetTop!=(document.body.scrollTop+followObj_y))         {             var dy=(document.body.scrollTop+followObj_y-followObj.offsetTop)*delta;             dy=(dy>0?1:-1)*Math.ceil(Math.abs(dy));             followObj.style.top=followObj.offsetTop+dy;         }         followObj.style.display = '';     } } </script>

eval干什么用的,查查语法手册不就知道了?
加不加是否一样,你多做几个不同情况测试不就知道了?

“再问下这个函数 this.items[this.items.length] = newItem;是将一个数组赋给一个变量
例如this.items[3]这样的感觉不能成为一个数组”

这叫函数吗?这是对一个已有的数组增加新的元素而已。看看书上关于数组的使用就知道了。

eval的作用是将字符串当做代码执行,作用那是非常非常强大啊
js数组模型也是集合,可以以任意下标添加成员
var items = [];
items['a']='test';
这种写法同样是合法的 ①
有时传的参数要求是字符串
function asd(f)
{
var a = 4, b = 2;
alert(eval(f));
}
asd("(a+6)*b-3");//传的参数是字符串

可以理解成给items数组中添加一个变量

  • 上一篇文章:
  • 下一篇文章:
  • Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有