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数组中添加一个变量