公共/私有变量和方法
通过一个简单的的例子,来展示如何使用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>
分享到:
相关推荐
1. **闭包**:这是JavaScript中实现私有变量和私有函数最常见的方法。闭包是一种特殊的函数,它可以访问其自身、调用它的函数以及包含它的所有外部变量,即使在其定义的作用域之外也是如此。通过在函数内部定义变量...
3. **公共接口**:构造函数返回的对象被称为实例,它提供了公共接口来与私有变量和方法交互。这些接口通常是一些方法,它们通过闭包访问私有变量,执行相应的操作,然后返回结果。 4. **防止篡改**:由于私有变量...
利用这一点,我们可以创建所谓的**特权方法**,这是一种可以访问私有变量和函数的公共方法。例如: ```javascript function MyObject() { var privateVariable = 10; this.publicMethod = function() { ...
了解并熟练掌握JavaScript中的面向对象和私有变量的概念,能够帮助开发者编写更加安全、模块化的代码,提高软件的可维护性和可扩展性。同时,这也涉及到JavaScript的其他高级特性,如闭包、作用域以及函数作为一等...
代码如下: [removed] //定义一个javascript类 function JsClass(privateParam/* */,publicParam){//构造函数 var priMember = privateParam; //私有变量 this.pubMember = publicParam; //公共变量 //定义私有方法 ...
JavaScript中的块级作用域、私有变量和模块模式是编程中至关重要的概念,尤其是在大型项目中,它们有助于保持代码的整洁和可维护性。 1. 块级作用域(私有作用域) 在JavaScript中,`var`关键字声明的变量具有函数...
特权方法是公有方法中的一种特殊情况,它可以访问对象的私有变量和方法。特权方法通常用于在私有方法中实现一些公共接口,以供外部调用。特权方法的创建方式与公有方法类似,但在其内部可以访问私有变量或方法,例如...
在函数内部,可以声明私有变量和函数,然后通过返回一个对象来暴露公共接口。以下是一个简单的示例: ```javascript var Calculator = function(eq) { // 私有变量和函数 var eqCtl = document.getElementById(eq...
JavaScript中的块级作用域和私有变量是编程中两个重要的概念,它们对于理解和编写高效、无污染的代码至关重要。本文将深入探讨这两个主题,并通过实例进行解析。 首先,我们来讨论块级作用域。在JavaScript中,块级...
这通常通过在构造函数中定义私有变量,并提供公共方法(setter和getter)来访问这些私有变量来实现。在示例中,`MyObject`构造函数内部的`privateName`和`privateFunction`就是私有变量,通过`getName`和`...
// 私有变量和方法 var privateVars; return { // 公共API createDiv: function (config) { // 创建DOM节点的逻辑 }, appendChild: function (parent, child) { // 添加子节点的逻辑 } }; })(); // Ext...
其中一种常见的需求就是在对象内部定义私有变量,并提供公共方法来访问这些私有变量,这有助于保护数据不被外部直接修改。 #### 私有变量与访问器的概念 - **私有变量**:在面向对象编程中,私有变量是指只能在...
在JavaScript开发中,模块模式是一种常见的设计模式,它提供了一种封装私有变量和公开API的方法。这种模式有助于提高代码的可维护性和可扩展性,同时保持了良好的封装性。 #### 单体模式与模块模式对比 首先介绍的...
### Java中的静态变量、静态方法、静态块与静态类 #### 一、静态变量 静态变量,也称为类变量,是定义在类中方法之外的,并且被`static`关键字修饰的变量。这类变量并不属于类的任何实例,而是属于类本身。这意味...
在JavaScript编程中,闭包是一种强大的特性,它允许内部函数访问外部函数的变量,即使外部函数已经执行...通过创建闭包和利用词法作用域,我们可以模拟出私有变量和私有方法,为JavaScript编程提供更高级的抽象和控制。
在这个例子中,`_arr1`, `_fn1`, 和 `_fn2` 是私有变量和方法,它们被封闭在匿名函数的作用域内,只能在该作用域内访问。而 `add`, `getCount`, 和 `outerFn` 是公共接口,它们被返回并赋予 `moduleFn`,使得外部...
在 Java 编程中,访问限定符是控制类、成员变量和方法的访问权限的关键。了解访问限定符的作用域是 Java 基础知识之一,对于编程人员来说是必备的知识。本文将详细讲解 Java 中的访问限定符,包括 public、private、...
4. **私有与公共接口**:Module模式允许我们创建私有变量和函数,同时只暴露必要的公共方法,提高了代码的安全性和可维护性。 **基本用法** Module模式通常通过匿名函数自执行来实现。以下是一个简单的例子: ```...