js动画效果

1      ali[i].onmouseover = function(){

            setLength(this,400 );//这是我自己写的一个函数,没错

        }

2     ali[i].onmouseover =setLength(this,400 );

为什么这两种情况不一样,第二种不对吗??我是小白,求大神不要嫌弃。。。

皓韵儿
浏览 1386回答 4
4回答

慕桂英3409250

理解 this  就会明白你的问题

stone310

第1种情况,将setLength包裹在一层函数内,就可以实现ali触发onmouseover的时候才去执行setLength,这时候执行setLength的对象就是ali,this也就是ali;所以没问题在2种情况,setLength这么写是个自执行函数,即不需要出发onmouseover时间,setLength函数就会自动执行,这是this的调用对象不是ali,而是window;所以执行不成功

慕用0418482

这个涉及到匿名函数作用域和js中this对象的引用
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript