JavaScript 面向对象编程中的私有与公开成员详解
作者:闭包旅人时间:2026-10-24 21:51:49浏览:439
本文通过具体代码示例,解析 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/
作者最新文章
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
p5.js 中 setup() 和 draw() 函数的执行机制详解
2026-11-05 12:32:38
