`
xo_tobacoo
  • 浏览: 391925 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

JS中公共/私有变量和方法 (翻译总结)

阅读更多

公共/私有变量和方法

通过一个简单的的例子,来展示如何使用JavaScript在类里面创建私有变量和方法


Summary

  • 私有变量 在对象内部使用'var'关键字来声明,而且它只能被私有函数和特权方法访问。
  • 私有函数 在对象的构造函数里声明(或者是通过var functionName=function(){...}来定义),它能被特权函数调用(包括对象的构造函数)和私有函数调用。
  • 特权方法 通过this.methodName=function(){...}来声明而且可能被对象外部的代码调用。它可以使用:this.特权函数() 方式来调用特权函数,使用 :私有函数()方式来调用私有函数。
  • 公共属性 通过this.variableName来定义而且在对象外部是可以读写的。不能被私有函数所调用。
  • 公共方法 通过ClassName.prototype.methodName=function(){...}来定义而且可以从对象外部来调用。
  • 原型属性 通过ClassName.prototype.propertyName=someValue来定义。
  • 静态属性 通过ClassName.propertyName=someValue来定义。

另外注意下这种写法: var 函数名=function 函数名(){...} 这个函数被调用时具有特权函数和私有函数的特性。

 

例:

 

<html>
<head>
<title></title>
<script type="text/javascript">
function Container( param ) {

 function dec(){
      if ( secret > 0 ) {
         secret -= 1;
         setSecret( 7)
         alert( secret );
         return true;
      }
      else {
      //  alert( "over"+this.member);
         return false;
      }
   }

  // this.dec = dec;
   //this.dec = function dec (){...} different from above code.
   function setSecret( num ){
      secret = num;
   }
   this.member = param;
   var secret = 3;
   var self = this;
   this.service = function () {
      if (dec()) {
         alert();
      }
      else {
         return null;
      }
   }
}

//  ---------------------------------------

function start(){
   alert( "Start" )
   var test = new Container( 'liuqi' );
  // test.setSecret( 2 );
   test.service(); 
   test.service(); 
   test.service(); 
   test.service(); 
  var test2 = new Container( 'liuqi' );
  //test2.service(); 
 // Container.dec();
}
</script>
</head>
<body>
<div onclick="start()" style="color:blue">click me</div>
</body>
</html>
 
4
2
分享到:
评论

相关推荐

    JavaScript之私有属性,私有函数,函数实现对外不可见

    1. **闭包**:这是JavaScript中实现私有变量和私有函数最常见的方法。闭包是一种特殊的函数,它可以访问其自身、调用它的函数以及包含它的所有外部变量,即使在其定义的作用域之外也是如此。通过在函数内部定义变量...

    ProtectJSJavaScript中真正私有的属性和方法

    3. **公共接口**:构造函数返回的对象被称为实例,它提供了公共接口来与私有变量和方法交互。这些接口通常是一些方法,它们通过闭包访问私有变量,执行相应的操作,然后返回结果。 4. **防止篡改**:由于私有变量...

    JavaScript私有变量实例详解

    利用这一点,我们可以创建所谓的**特权方法**,这是一种可以访问私有变量和函数的公共方法。例如: ```javascript function MyObject() { var privateVariable = 10; this.publicMethod = function() { ...

    JavaScript面向对象之私有静态变量实例分析

    了解并熟练掌握JavaScript中的面向对象和私有变量的概念,能够帮助开发者编写更加安全、模块化的代码,提高软件的可维护性和可扩展性。同时,这也涉及到JavaScript的其他高级特性,如闭包、作用域以及函数作为一等...

    一个简单的javascript类定义例子

    代码如下: [removed] //定义一个javascript类 function JsClass(privateParam/* */,publicParam){//构造函数 var priMember = privateParam; //私有变量 this.pubMember = publicParam; //公共变量 //定义私有方法 ...

    深入理解JavaScript中的块级作用域、私有变量与模块模式

    JavaScript中的块级作用域、私有变量和模块模式是编程中至关重要的概念,尤其是在大型项目中,它们有助于保持代码的整洁和可维护性。 1. 块级作用域(私有作用域) 在JavaScript中,`var`关键字声明的变量具有函数...

    js基础知识(公有方法、私有方法、特权方法)

    特权方法是公有方法中的一种特殊情况,它可以访问对象的私有变量和方法。特权方法通常用于在私有方法中实现一些公共接口,以供外部调用。特权方法的创建方式与公有方法类似,但在其内部可以访问私有变量或方法,例如...

    全面解析JavaScript Module模式

    在函数内部,可以声明私有变量和函数,然后通过返回一个对象来暴露公共接口。以下是一个简单的示例: ```javascript var Calculator = function(eq) { // 私有变量和函数 var eqCtl = document.getElementById(eq...

    JS块级作用域和私有变量实例分析

    JavaScript中的块级作用域和私有变量是编程中两个重要的概念,它们对于理解和编写高效、无污染的代码至关重要。本文将深入探讨这两个主题,并通过实例进行解析。 首先,我们来讨论块级作用域。在JavaScript中,块级...

    JavaScript中的私有/静态属性介绍

    这通常通过在构造函数中定义私有变量,并提供公共方法(setter和getter)来访问这些私有变量来实现。在示例中,`MyObject`构造函数内部的`privateName`和`privateFunction`就是私有变量,通过`getName`和`...

    ExtJS 设计模式之一.docx

    // 私有变量和方法 var privateVars; return { // 公共API createDiv: function (config) { // 创建DOM节点的逻辑 }, appendChild: function (parent, child) { // 添加子节点的逻辑 } }; })(); // Ext...

    javascript 动态生成私有变量访问器

    其中一种常见的需求就是在对象内部定义私有变量,并提供公共方法来访问这些私有变量,这有助于保护数据不被外部直接修改。 #### 私有变量与访问器的概念 - **私有变量**:在面向对象编程中,私有变量是指只能在...

    javascript设计模式之模块模式学习笔记.docx

    在JavaScript开发中,模块模式是一种常见的设计模式,它提供了一种封装私有变量和公开API的方法。这种模式有助于提高代码的可维护性和可扩展性,同时保持了良好的封装性。 #### 单体模式与模块模式对比 首先介绍的...

    Java中的静态变量静态方法静态块与静态类.docx

    ### Java中的静态变量、静态方法、静态块与静态类 #### 一、静态变量 静态变量,也称为类变量,是定义在类中方法之外的,并且被`static`关键字修饰的变量。这类变量并不属于类的任何实例,而是属于类本身。这意味...

    js代码-用闭包模拟私有方法, 形成词法作用域

    在JavaScript编程中,闭包是一种强大的特性,它允许内部函数访问外部函数的变量,即使外部函数已经执行...通过创建闭包和利用词法作用域,我们可以模拟出私有变量和私有方法,为JavaScript编程提供更高级的抽象和控制。

    第五课 模块模式1

    在这个例子中,`_arr1`, `_fn1`, 和 `_fn2` 是私有变量和方法,它们被封闭在匿名函数的作用域内,只能在该作用域内访问。而 `add`, `getCount`, 和 `outerFn` 是公共接口,它们被返回并赋予 `moduleFn`,使得外部...

    java成员变量和方法的public等访问限定符的访问权限.doc

    在 Java 编程中,访问限定符是控制类、成员变量和方法的访问权限的关键。了解访问限定符的作用域是 Java 基础知识之一,对于编程人员来说是必备的知识。本文将详细讲解 Java 中的访问限定符,包括 public、private、...

    全面解析Module模式1

    4. **私有与公共接口**:Module模式允许我们创建私有变量和函数,同时只暴露必要的公共方法,提高了代码的安全性和可维护性。 **基本用法** Module模式通常通过匿名函数自执行来实现。以下是一个简单的例子: ```...

Global site tag (gtag.js) - Google Analytics