zoukankan      html  css  js  c++  java
  • 私有变量

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

     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 }

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

     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 })();

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

     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 }();
  • 相关阅读:
    把IDEA中新建的项目提交到Github仓库中
    在IDEA中设置方法自动注释(带参数和返回值)
    如何在 Maven 工程中引入其他jar包 并生效?(以 Netty 为例)
    在 IDEA 中 配置 Maven
    Visio中锁定元件
    DevExpress中 TreeList控件的常规配置
    从SuperSocket的App.config中读取配置,并修改保存,再重启服务
    devexpress 中 XtraTabcontrol 改变BackColor 的方法
    DevExpress 中 GridControl 的数据源DataTable 内容改变后 重新绑定
    如何在linux中设置tab键长度
  • 原文地址:https://www.cnblogs.com/tinyTea/p/9946985.html
Copyright © 2011-2022 走看看