js中this的用法实例分析
本文实例分析了js中this的用法。分享给大家供大家参考。具体分析如下:
实例1:第一种调用this的方法——以函数形式调用。它代表全局对象window
<scripttype="text/javascript"> functiont(){ alert(this);//这里this表示window对象。 } t(); </script>
实例2:第二种调用this的方法——以对象属性的形式调用。它代表该对象。实例中onclick为p元素对象的属性
<html> <head> <scripttype="text/javascript"> functiont(){ alert(this); this.style.background='green'; } window.onload=function(){ document.getElementById('eng').onclick=t; } </script> </head> <body> <pid="eng">abcd</p> </body> </html>
实例3:第三种调用this的方法——以构造器的方式调用。
<scripttype="text/javascript"> functiondog(){ this.legs=4; this.bark=function(){ alert("汪汪..."); } } varwangcai=newdog();//创建对象的方式。new函数名(); wangcai.bark(); </script>
说明:
(1)如果直接调用dog()函数,而不是以创建对象的方式调用,则相当于第一种调用了,即this代表着全局对象window。
(2)js中没有类的概念,但是有对象的概念;
(3)对象的创建可以采用var=objName{name:'abc',age:40}这种方式创建,也可以通过构造函数来创建;
(4)什么是构造函数:当一个普通函数以“new函数名()”的方式调用时,此函数就充当构造函数。
实例4:第四种调用this的方法——call和apply方式
<html> <head> <scripttype="text/javascript"> window.onload=function(){ vard=document.getElementById('hi'); if(hi.addEventListener){//chrome和firefox hi.addEventListener('click',function(){alert(this.id)},false);//w3c模型中,this指向DOM对象。this.id结果为hi }else{//ie hi.attachEvent('onclick',function(){alert(this.id)});//ie8及ie8以下,这里this指向全局对象window。结果this.id结果为undefined } } </script> </head> <body> <pid="hi">helloworld</p> </body> </html>
希望本文所述对大家的javascript程序设计有所帮助。