本帖最后由 rao3324180 于 2012-01-05 23:53:29 编辑

解决方案 »

  1.   

    1、console.log(target + ":" + this.cName) //这里这里的target 指向的是window;
    2、而onmouseover里面的console.log(this) 这里的this指向是当前...LZ你的第一行描述中target应该指向的是鼠标onmouseover的那个li元素啊;
    第二行中console.log(this),因为你写在li元素的onmouseover函数里面,那这个this当然就只的是当前的li元素了。
      

  2.   

    这种东西。。用firebug调试下,看看只想哪里,记住就好了,时间多了,经验多了,自然就明白了
      

  3.   

    对啊 。。但target 为什么会指向window啊。应该指向当前的li元素才对啊
      

  4.   

    因为你定义的function 方法A(){}是没有指定此方法所属,所以默认就是给了window,所以this指向的是window;而你的那个控件B.onmouseover的事件是所属于控件B的,所以this指向的是控件B!1.函数作为哪个对象的方法调用,函数体内的this(不包括嵌套定义在其中的函数中的this)指向的就是那个对象。
    2.结合new运算符调用一个构造函数时,系统会先自动生成一个对象,然后在该对象上调用构造函数。此时在构造函数体内,this指向的就是这个对象。
    3.直接调用一个函数,相当于把它当作全局对象的方法调用。
    4.JavaScript中没有类作用域的概念,因此方法内部要访问据以调用此方法的那个对象的属性,必须使用this关键字,按“this.属性名”的语法来访问。
    参考1:http://www.jb51.net/article/16863.htm
    参考2:http://www.cnblogs.com/Mainz/archive/2011/07/28/2119459.html
    参考3:http://hi.baidu.com/kxw102/blog/item/85a59b0839225988d3581b61.html
      

  5.   


    this.startMove = startMove;  我这里不是定义了方法吗