JavaScript 面向对象编程中的私有与公开成员详解

作者:闭包旅人

时间:2026-10-24

浏览:438

本文通过具体代码示例,解析 JavaScript 中如何利用 var、function 和 this 关键字区分私有与公开成员。文章指出,在类内部使用 var 声明的变量或 function 定义的方法为私有,仅内部可访问;而通过 this 绑定的成员则为公开,实例可直接调用。此外,还简要说明了静态类作为 JSON 对象时所有成员公开的特性。

文章目录

JavaScript 私有与公开成员的定义规则

理解这一概念并不复杂,直接通过下方的代码及其注释即可清晰掌握核心逻辑。


具体实现代码如下:

 
首先声明一个类,这本质上是一个函数。在 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 关键字绑定的变量或方法则是公开的。



上述规则主要适用于实例化的类。对于静态类而言,其本质就是一个 JSON 对象,因此其所有成员均为公开状态,对外完全可见。



作者: 祥叔


出处:http://xumingxiang.cnblogs.com/

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章