公有变量、私有变量 !
初学者的见解,算是记录学习过程,也算是分享以便共同成长,如有不正确的地方,请不要客气的留言指出!
先看代码1:
function car(){
var wheel = 3; //私有变量
this.wheel = 4; //公有变量
alert(wheel);
alert(this.wheel);
}
var car1 = new car();结果是:3 4
代码2:
function car(){
var wheel = 3;//私有变量
this.wheel = 4;//公有变量
}
var car1 = new car();
alert(car1.wheel);结果:4
var wheel = 3是局部变量,this.wheel=4是公有变量,若想访问car中的私有变量,请看代码3:
function car(){
var wheel = 3;//私有变量
this.wheel = 4;//公有变量
this.getPrivateVal = function(){
return wheel;
}
}
var car1 = new car();
alert(car1.getPrivateVal());结果:3
实际应用举例:
<script>
//构造一个学生对象
function student(){ var names = "wang"; // 学生的名字为私有的,不公开 (私有变量) this.profession = "Network"; //学生的专业为公有的,可以公开 (公有变量) this.getnames = function(){ // 提供一个接口,通过这个接口可以知道该学生的名字 return names; }; this.setnames = function(newname){ //提供一个接口,可以修改学生的名字 names = newname;}; } //测试 var student1 = new student(); // new 一个新的student1
alert(student1.names); //undefined ,(私有变量在函数外部不能被获取)
alert(student1.profession); //Network,(公有变量可以被获取到,也可以把公有变量理解成全局变量) alert(student1.getnames()); // wang ,通过专用接口,我们可以获取到该学生的名字
student1.setnames("zhang"); //通过专用接口,我们也可以修改该学生的名字
alert(student1.getnames()); // zhang ,重新获取该学生修改后的名字
</script>