Javascript面向对象编程

 

this关键字:

 

this这个关键字使用得非常广泛,代表的是当前的对象。呃,大概就是这么个意思哈。

 

function User(){}

var u1 = new User();

u1.name=何洪波;

u1.age=21;

alert(u1.name+ +p1.age);

var u2 = new User();

alert(u2.name);// 这里会输出 undefine

 

在实际编程中,我们可能会有这样的需求,当我们创建一个对象后,就希望该对象自动拥有某些属性,比如:我们创建User对象后,希望该对象自动拥有nameage属性

 

嘿嘿,我们可以使用this来解决

function User(){

this.name=hehongbo;

this.age=21;

}

var u1 = new User();

var u2 = new User();

alert(u1.name+  +u2.name);

 

this关键字可不止这么点作用哦,当在函数申明的时候使用,它又代表这更深一层的含义:

 

function User(){

var name=hehongbo;// var name 表示name这个属性是私有的

var age=21;

this.name2=何洪波;// this.name 表示name这个属性是公开的

 

this.show=function(){  // 这是User类的公开方法

alert(name+  +age);

}

 

function show2(){  // 这是User类的私有方法,只能在User类中使用

 

}

}

var u1 = new User();

u1.show();

 

如你所见,this在申明函数(方法)的时候使用,控制了方法的作用域范围。

 

问题:

function test(){

alert(this.v);

}

var v=10;

test();// 输出什么

 

function 类名(){

this.属性名;// 公开属性

var 属性名;// 私有属性

}

 

this只能在类的内部使用

 


你可能感兴趣的:(Javascript面向对象编程)