前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >私有变量

私有变量

作者头像
就只是小茗
发布2018-12-12 17:50:57
6130
发布2018-12-12 17:50:57
举报
文章被收录于专栏:一个小程序员的成长笔记

构造函数的私有变量,属性和方法都是独立的。

代码语言:javascript
复制
 1 window.onload = function() {
 2     var person = new Person("Li");
 3     alert(person.getName());        // Li
 4     person.setName("Joe");
 5     alert(person.getName());        // Joe
 6 
 7     var person2 = new Person("Ji");
 8     alert(person2.getName());        // Ji
 9     person.setName("Joe");
10     alert(person2.getName());        // Ji
11 };
12 
13 /**
14  * 人(每次调用构造函数都会重新创建方法)
15  * @param {string} name 名字
16  */
17 function Person(name) {
18     this.getName = function(){
19         return name;
20     };
21 
22     this.setName = function(value){
23         name = value;
24     }
25 }

静态私有变量,属性和方法都是共享的。

代码语言:javascript
复制
 1 window.onload = function() {
 2     var person = new Person("Li");
 3     alert(person.getName());        // Li
 4     person.setName("Joe");
 5     alert(person.getName());        // Joe
 6 
 7     var person2 = new Person("Ji");
 8     alert(person2.getName());        // Ji
 9     person.setName("Joe");
10     alert(person2.getName());        // Joe
11 };
12 
13 /**
14  * 静态私有变量,属性和方法都是共享的,不会重复创建,但是实例之间会互相影响
15  * @return {string} 姓名
16  */
17 (function(){
18     var name = "";
19 
20     Person = function(value){
21         name = value;
22     };
23 
24     Person.prototype.getName = function(){
25         return name;
26     }
27 
28     Person.prototype.setName = function(value){
29         name = value;
30     };
31 })();

 增强的模块模式,单例的特权方法。

代码语言:javascript
复制
 1 window.onload = function() {
 2     alert(application.getComponentCount());    // 1
 3     application.registerComponent("hello");
 4     alert(application.getComponentCount());    // 2
 5 };
 6 
 7 /**
 8  * 增强模块模式,单例的特权方法
 9  * @return {object}
10  */
11 var application = function(){
12     // 私有变量和函数
13     var components = new Array();
14 
15     // 初始化
16     components.push(new String("hello"));
17 
18     // 创建apllication的一个局部副本
19     var app = new String();
20 
21     // 公共接口
22     app.getComponentCount = function(){
23         return components.length;
24     };
25 
26     app.registerComponent = function(str){
27         if (typeof str == "string") {
28             components.push(str);
29         }
30     };
31 
32     // 返回这个副本
33     return app;
34 }();
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-11-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档