<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test</title> </head> <body> <button class="btn">按鈕</button> <script src="../js/j ...
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test</title> </head> <body> <button class="btn">按鈕</button> <script src="../js/jquery.js"></script> <script> var obj={ show:function(){ console.log(this,1); }, hide:function(){ console.log(this,2); } } //這次只是綁定了事件,真正調用時是在hover的時候 //因此調用這個方法的實際是hover的元素 $(".btn").hover(obj.show,obj.hide);//this指向調用obj.show這個方法的元素 </script> </body> </html>
這裡只是綁定了事件,函數真正執行是在元素被hover的時候,因此this指向調用該方法的元素
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test</title> </head> <body> <button class="btn">按鈕</button> <script src="../js/jquery.js"></script> <script> var obj={ show:function(){ console.log(this,1); }, hide:function(){ console.log(this,2); } } $(".btn").hover(function(){ obj.show();//方法是obj直接調用的,因此this指向obj },function(){ obj.hide(); }); </script> </body> </html>
這裡的方法是在匿名函數中直接調用的(加了()小括弧表示調用)
因此this指向調用該方法的obj對象