js静态私有变量(将方法变成原型模式,被所有实例共享,而方法操作变量,故变量是静态)
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>
js静态私有变量(将方法变成原型模式,被所有实例共享,而方法操作变量,故变量是静态)的更多相关文章
- javascript创建对象的方法--动态原型模式
javascript创建对象的方法--动态原型模式 一.总结 1.作用:解决组合模式的属性和函数分离问题 2.思路:基本思路和组合模式相同:共用的函数和属性用原型方式,非共用的的函数和属性用构造函数 ...
- 详解Java中的clone方法:原型模式
转:http://developer.51cto.com/art/201506/478985.htm clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的 ...
- js面向对象的程序设计 --- 中篇(创建对象) 之 原型模式
·原型模式 我们创建的每一个函数都由一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有 实例共享的属性和方法. 如果按照字面意思来理解,那 ...
- JS --- 原型模式
创建一个对象,先来看一段代码: // 例如创建一个 Person 的构造函数, 让人有名字, 可以说话 function Person ( name ) { this.name = name; // ...
- js设计模式:工厂模式、构造函数模式、原型模式、混合模式
一.js面向对象程序 var o1 = new Object(); o1.name = "宾宾"; o1.sex = "男"; o1.a ...
- JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
什么是面向对象?面向对象是一种思想. 面向对象可以把程序中的关键模块都视为对象, 而模块拥有属性及方法. 这样如果我们把一些属性及方法封装起来,日后使用将非常方便,也可以避免繁琐重复的工作. 工厂 ...
- JS面向对象(1)——构造函数模式和原型模式
1.构造函数模式 构造函数用来创建特定的类型的对象.如下所示: function Person(name,age,job){ this.name=name; this.job=job; this.ag ...
- JavaScript中的类方法、对象方法、原型方法
类方法:也叫函数方法,在JavaScript中函数也是一个对象,所以可以为函数添加属性以及方法: 对象方法:包括构造函数中的方法以及其原型上面的方法: 原型方法:一般用于对象实例共享,在原型上面添加该 ...
- 06JS高级创建对象使用原型共享对象方法
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
随机推荐
- Java的IO流架构
输入输出是指应用程序与外部设备及其他计算机进行数据交流的操作,如读写硬盘数据.向显示器输出数据.通过网络读取其他节点的数据等.任何一种编程语言必须拥有输入输出的处理方式,Java语言也不例外.Java ...
- MySql_Learn
1 id 自增长 auto_increment 2 获取当前时间 now() 3 新增字段 修改字段名称 简单分页功能 limit 10 offset 20; 查询第21到30条数据 selec ...
- 搭建 Nginx 静态网站
示例代码:/etc/nginx/nginx.conf user nginx;worker_processes auto;error_log /var/log/nginx/error.log;pid / ...
- 【Uva 1633】Dyslexic Gollum
[Link]: [Description] 输入正整数n和k(1≤n≤400,1≤k≤10),求长度为n的01串中有多少个不含长度至少 为k的回文连续子串.例如,n=k=3时只有4个串满足条件:001 ...
- Android开发数据库之第三方ORM框架(GreenDao)
移动APP追求追求功能实现的同一时候,用户体验很重要.開始APP的同一时候.要时刻的切换开发人员的角色,如你开发的时候.是 站在APP的开发角色,处于生产者的位置:当你測试的时候.你应该把自己放在用户 ...
- 利用js 获取本日 本周 本月时间代码
function showToDay() { var Nowdate=new Date(); M=Number(Nowdate.getMonth())+1 alert(Nowdate.getMonth ...
- 【Codeforces Round #451 (Div. 2) C】Phone Numbers
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 用map<string,vector > dic;模拟就好. 后缀.翻转一下就变成前缀了. 两重循环剔除这种情况不输出就 ...
- 背景剪除和OpenCV中的实现
转载请注明出处! ! ! http://blog.csdn.net/zhonghuan1992 背景剪除和OpenCV中的实现 背景与前景都是相对的概念.以快速公路为例:有时我们对快速公路上来来往往的 ...
- [Javascript AST] 0. Introduction: Write a simple BabelJS plugin
To write a simple Babel plugin, we can use http://astexplorer.net/ to help us. The plugin we want to ...
- solr/lucence和关系数据库的混合使用
我们知道solr提供了一个DIHandler,提供将关系数据库中的数据导成索引,然后使用solr查询. 对于一个大表中关联数个小表的查询,这非常耗费时间. 我的思路是: 1. 将一个大表做成索引,使用 ...