当创建一个类的时候,如果希望下面new出来的每个类都拥有一些通用的变量或者其他的函数,这个this关键字这是最好的方式。
当然,既然是面向对象的语言,必然存在访问权限的问题,这里也和this关键字息息相关。下面我们来演示一个例子来说明一下这个类的访问权限的问题.
复制代码 代码如下:
//Person类
function Person(){
var name="abc";//var声明的都是类内部的私有变量,外部无法访问
var age = 20;
this.name2="edg";//this声明的是公开变量,外部可以访问
this.show=function(){//shou方法是公开的方法,可以被外部访问,而且可以访问类内部私有方法
window.alert(name);
}
function show2(){//shouw2方法是类内部的私有方法,不能被外部访问
}
}
var p1 = new Person();
document.writeln(p1.name2+p1.name);
p1.show();
//Person类 www.jb51.net
function Person(){
var name="abc";//var声明的都是类内部的私有变量,外部无法访问
var age = 20;
this.name2="edg";//this声明的是公开变量,外部可以访问
this.show=function(){//shou方法是公开的方法,可以被外部访问,而且可以访问类内部私有方法
window.alert(name);
}
function show2(){//shouw2方法是类内部的私有方法,不能被外部访问
}
}
var p1 = new Person();
document.writeln(p1.name2+p1.name);
p1.show();
这个Person其实就是一个类,类名就是Person,其中声明的变量,var开头的都是私有变量,只能在类的内部实现访
问,而通过this关键字声明的变量是公有的变量,可以在外部访问。当然,只需要公开一个方法,就可以实现外部访
问类内部的私有变量,这个this.show=function(){}就是声明一个共有方法,在类的外部也是可以调用的。当然,以此
类推,直接声明的方法是私有的方法/
下面再看一个例子
复制代码 代码如下:
function test(){
alert(this.v);
}
var v = 902;
window.test();
function test(){
alert(this.v);
}
var v = 902;
window.test();
代码很简短,这个的意思是,谁调用的这个方法,这个this就是指的那个对象,比如,window对象调用的test方法,
所以在test方法内部,这个this,v就是指在window也就是外部全局是否定义了一个v变量,通过查看可以知道,定义了
一个var v = 902;所以这个方法调用的其实就是v的值.
this,介绍,使用
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
更新日志
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】