您的位置:首页 > Web前端 > JavaScript

JS中this关键字的使用

2014-08-01 13:29 246 查看
js中this关键字代表类的变量和方法为公有方法,可供类的对象访问。看下面的代码:

[html] view plaincopy

<html>

<head>

<script language="javascript">

function Person() {

this.name = "abc";

this.age = 900;

}

var p1 = new Person();

window.alert("p1的名字为:" + p1.name + " " + p1.age);

var p2 = new Person();

window.alert("p2的名字为:" + p2.name + " " + p2.age);

</script>

</head>

<body>

</body>

</html>

这样p1和p2都是Person的对象,name和age属性都使用this关键字标明,是类的公有属性,所以p1和p2都可以访问。原理是在桟中p1指向一个地址,在堆中这个地址下面有一个name和age属性。同时在桟中p2指向一个地址,在堆中这个地址下面也有一个name和age属性,这两个地址指向的name和age属性的值是一样的。但是改变p2指向地址的name属性的值,p1指向地址的name属性的值不会改变。因为并不在一块内存中。

再来看一段代码:

[html] view plaincopy

<html>

<head>

<script language="javascript">

function test1() {

alert(this.v);

}

var v = 90;

window.test1();//==test1();

</script>

</head>

<body>

</body>

</html>

这段代码的输出结果是90,从面向对象的角度考虑,方法和属性都是对应对象的,那么test1和v都是对应window对象的,window对象是javascript层级中的顶层对象。可以把当前窗口对象的方法当作函数来使用,如只写alert(),而不必写window.alert();

注意:哪个对象实例调用this所在的函数,那么this就代表哪个对象实例。this 不能放在类的外部使用,否则调用者就变成了window啦
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: