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

    静态私有变量

    13:43:19

    作用:隐藏不应该被直接修改的数据

    1.       在函数内部创建闭包,可以通过自己的作用域链访问这些变量
     1 /*demo1*/
     2       /*在函数内部创建闭包,可以通过自己的作用域链访问这些变量*/
     3       /*基本模型*/
     4       function MyObject(){
     5             // 私有变量和私有函数
     6             var privateVariable = 10;
     7             function privateFunction(){
     8                   return false;
     9             }
    10             // 特权方法
    11             this.publicMethod = function (){
    12                   privateVariable++;
    13                   return privateFunction();
    14             }
    15       }
    16 /*demo2==>私有变量*/
    17 /*实例*/
    18       /*利用私有和特权成员,隐藏不应该被直接修改的数据*/
    19       /*注:特权方法getName()和setName()都可以在构造函数
    20       *外使用,都有权访问私有变量name。通过作用域链访问name*/
    21       /*===缺点:每个实例都会创建同样一组新方法,使用
    22       *==>使用静态私有变量解决问题
    23       */
    24       function Person(name){
    25             this.getName = function(){
    26                   return name;
    27             };
    28             this.setName = function(value){
    29                   name = value;
    30             };
    31       }
    32       var person = new Person('Nicholas');
    33       console.log(person.getName());//Nicholas
    34       person.setName('Greg');
    35       console.log(person.getName());//Greg
     1       /*基本模型*/
     2       (function(){
     3             // 私有变量和私有函数
     4             var privateVariable = 10;
     5             function privateFunction(){
     6                   return  false;
     7             }
     8             // 构造函数
     9             MyObject = function(){
    10 
    11             }
    12             // 公有/特权方法
    13             /*注:由于特权方法是在原型上定义,所有实例使用同一函数*/
    14             MyObject.prototype.publicMethod = function(){
    15                   privateVariable++;
    16                   return privateFunction();
    17             }
    18       })();
    19       /*基本实例*/
    20       (function(){
    21             var name='';
    22             Person = function(value){
    23                   name = value;
    24             };
    25             Person.prototype.getName = function(){
    26                   return name;
    27             };
    28             Person.prototype.setName = function(value){
    29                   name = value;
    30             }
    31       })();
    32       var person1 = new Person('Nicholas');
    33       console.log(person1.getName());//Nicholas
    34       person1.getName('Greg');
    35       console.log(person1.getName());//Gerg
    36       var person2 = new Person('Michael');
    37       console.log(person1.getName());//Michael
    38       console.log(person2.getName());//Michael
  • 相关阅读:
    把office文档转换为html过程中的一些坑
    Win10内置应用恢复初始状态
    HTTP 错误 500.23
    关于Application.Lock和Lock(obj) 转 http://www.cnblogs.com/yeagen/archive/2012/03/01/2375610.html
    正则表达式 细节
    Python常用内置函数总结
    将Python脚本封装成exe可执行文件 转
    爬虫技能
    python之map、filter、reduce、lambda函数 转
    小细节
  • 原文地址:https://www.cnblogs.com/NB-JDzhou/p/6932946.html
Copyright © 2011-2022 走看看