js静态私有变量(将方法变成原型模式,被所有实例共享,而方法操作变量,故变量是静态)
一、总结
1、js函数中的private和public:js函数中的私有变量 var 变量名,公有变量 this.变量名
2、js静态私有变量:将方法变成原型模式,被所有实例共享,而方法操作变量,故变量是静态
3、js静态私有变量的作用:js中的static:解决变量静态的问题,就是java中static的作用
4、js中的get和set方法:也就是js中一般对象的定义方法
function People(_name){
var name=_name; //私有,外部无法访问
this.getName=function(){ //公有,外部可以访问
return name
} this.setName=function(value){ //set函数
name=value
} } var p1=new People('张三');
alert(p1.getName()) p1.setName('李四')
alert(p1.getName())
二、js静态私有变量
静态私有变量
通过块级作用域(私有作用域)中定义私有变量或函数,创建对外公共的特权方法;
- 首先创建私有作用域
- 定义私有变量或函数
- 定义构造函数和特权方法
- 这种方式创建的私有变量因为使用原型而实现共享。
- 同时由于共享,实例也就没有自己的私有变量。
三、代码
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<title>课堂演示</title>
</head>
<body>
<script>
/*
//通过构造方法传参来访问私有变量
function People(_name){
var name=_name;
this.getName=function(){
return name
} this.setName=function(value){
name=value
} } var p1=new People('张三');
alert(p1.getName()) p1.setName('李四')
alert(p1.getName())
*/ (function(){
var name='张三';
User=function(){} //构造函数
User.prototype.getName=function(){
return name
}
User.prototype.setName=function(value){
name=value
};
})() var VIP1=new User() //因为Uer()是私有函数,所以外部无法访问。
//alert(VIP1.getName())
VIP1.setName('李四')
//alert(VIP1.getName()) var VIP2=new User()
alert(VIP2.getName()) //结果是李四
</script>
</body>
</html>