java学习

java学习

 

js中方法的行内绑定和动态绑定的区别

<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>

   <div id="mydiv">aaaaa</div>
    <div id="mydiv1" onclick="test();">bbbbb</div>
     <div id="mydiv2" onclick="test2(this);">bbbbb</div>
</body>

<script type="text/javascript" >
document.getElementById('mydiv').onclick=test1;
//相当于  对象.属性=test1,相当于对象拥有了test1属性,this指向当前对象
function test1(){
 this.style.color='red';
}
function test(){
 this.style.color='red';
}
function test2(t){
 t.style.color='red';
}
//1.我们在js定义的所有的全局变量 和方法,都是需要附属在window上的,当成window的属性,所以在test方法中的
//this指向window,不是当前元素,所以test方法执行报错。在js中,规定,函数被哪个元素调用,this指向这个元素。
//当方法被动态绑定时,是当前元素调用方法,当行内绑定时,如果不在方法中传入当前对象,方法中的this指向window。

</script>
</html>

posted on 2016-05-11 17:27 杨军威 阅读(1087) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜