这节来说下JavaScript的私有成员和公开成员,虽然JavaScript没有private和public关键字,但还是那句话——作为开发人员我们要有面向对象的思想!
其实很简单,废话少说,看了下面的代码及注释相信你就会一目了然!
复制代码 代码如下:
//声明类,就是一个方法,其实在JavaScript中,命名空间、类、成员.... 一切皆对象
MyClass =function(){
var _this=this;
//私有变量
var aa="11";
//公开变量
this.bb="22";
//私有方法
function fun1(){
alert(aa);
alert(_this.bb);
}
//私有方法
var fun2=function(){
alert(aa);
alert(_this.bb);
}
//公开方法
this.fun3=function(){
alert(aa);
alert(_this.bb);
}
}
//测试如下:
var mc=new MyClass();
mc.aa="AA";//错误
mc.bb="BB";//正确
mc.fun1();//错误
mc.fun2();//错误
mc.fun3();//正确
一言以蔽之:在类的内部
用 var 关键字声明的变量或方法是私有的;
用function 关键字声明的方法是私有的;
用this关键字声明的变量或方法是公开的。
以上说的都是针对于实例类而言的,而对于静态类那就更简单了,JavaScript静态类其实就是一个json对象,所以的它的所有成员都是公开的,都是对外可见的!
作者: 祥叔
分享到:
相关推荐
上两节讲了 JavaScript 面向对象之命名空间 与 javascript 面向对象的JavaScript类,大家可以先看上面的再继续往下看。其实很简单,废话少说,看了下面的代码及注释相信你就会一目了然! 代码如下: //声明类,就是一...
在探讨《JavaScript面向对象编程指南》这一主题时,我们不仅会深入分析面向对象编程(OOP)的基本概念,还会结合JavaScript这种脚本语言的特点,详细阐述如何在实际开发中有效地运用面向对象思想。以下是对该指南核心...
上几节讲了 JavaScript 面向对象之命名空间 、 javascript 面向对象的JavaScript类 、 JavaScript 面向对象的之私有成员和公开成员 与 Javascript 面向对象之重载,大家可以先看上面的再继续往下看。在JavaScript...
上几节讲了 JavaScript 面向对象之命名空间 、 javascript 面向对象的JavaScript类 与 JavaScript 面向对象的之私有成员和公开成员 ,大家可以先看上面的再继续往下看。假如 我这样定义: 代码如下: function ...
在传统面向对象的编程语言如Java、C++中,私有成员是实现封装的重要特性,而JavaScript在早期版本中并没有直接支持私有成员。不过,随着ES6(ECMAScript 2015)的推出,JavaScript开始引入了支持私有成员的特性。 ...
总的来说,韩顺平的JavaScript面向对象笔记详细地介绍了JavaScript中面向对象编程的关键概念和技术,包括变量作用域、对象引用、this的使用、对象的方法以及对象的构造和继承,这些都是理解和编写高效JavaScript代码...
对象可以拥有私有属性和公开方法,公开方法可以调用私有属性来提供服务,但私有属性对外部是不可见的,这样可以保证数据的安全性。 除了基本的封装,JavaScript中还可以定义“静态类”。在JavaScript中,可以通过在...
虽然JavaScript默认所有成员都是公开的,但可以通过闭包来实现封装和创建私有成员。闭包允许函数访问并操作定义在其外部的变量,即使在函数执行结束后,这些变量依然存活。 ```javascript function Module() { var...
为了弥补这一不足,JavaScript允许我们使用类的语法糖,以支持类定义和模拟面向对象编程语言中的成员访问控制,包括私有成员、受保护成员和静态成员。 在JavaScript中,类的定义往往基于构造函数或者使用ES6引入的...
然而,JavaScript的类并不像其他面向对象语言那样提供内置的私有成员支持。`private-class`模块就是为了填补这一空白,它是一个用于Node.js环境中的工具,旨在帮助开发者创建具有私有属性和方法的类。本文将详细讲解...
封装是面向对象编程中的三大特性之一,它涉及将数据(或状态)和操作数据的方法捆绑在一起,形成一个对象,并对对象的实现细节进行隐藏。在JavaScript中,封装是通过几种方式实现的,包括使用闭包、作用域以及一些...
这是因为在JavaScript中,没有像其他面向对象语言中的私有成员的概念,所有的属性都是可以被外部访问的。这在某些情况下可能会导致数据安全的问题,因此在实际开发中需要额外的封装来实现私有化。 在现代的...
以上内容就是关于JavaScript面向对象编程的浅析,通过理解JavaScript中的函数即对象、构造函数、prototype属性以及如何封装私有成员等概念,我们可以更好地利用JavaScript进行面向对象编程,编写出结构更清晰、可...
JavaScript设计模式中的封装和信息隐藏是面向对象编程中至关重要的概念。封装是将对象的内部状态(数据)和行为(方法)结合在一起,对外提供一个有限的接口进行交互,以此来保护内部数据的完整性和安全性。信息隐藏...
**基于原型的语言**意味着在JavaScript中,对象可以直接从另一个对象继承属性和方法,而无需像传统的面向对象语言(如Java、C++)那样定义类。这种方式使得JavaScript的对象创建和继承过程更加灵活。 #### 二、面向...
尽管JavaScript没有像Java或C#那样的严格访问修饰符,但可以通过命名约定来模拟私有(_private)、受保护(_protected)和公开(public)的成员。例如,前导下划线通常表示私有或内部使用。 8. **模块化与封装...