JavaScript 对象成员的可见性:私有、公共与静态属性详解
本文详细解析 JavaScript 中对象成员的可见性机制,涵盖私有属性、私有方法、公共属性、公共方法以及静态属性和方法的定义方式。通过 var 关键字、this 关键字及原型链三种途径,阐述不同访问权限的实现原理与代码示例,帮助开发者掌握封装与接口设计。
JavaScript 对象可见性概述
在 JavaScript 中,对象成员的可见性(或访问权限)主要可分为以下几类:
1,私有属性(private properties)
私有属性与私有方法
利用 var 关键字在构造函数内部定义的变量具有私有作用域,仅能在该构造函数的内部被访问。例如:
具体代码实现如下:
function VariableTest()
{
var myVariable;//private
}
var vt = new VariableTest();
vt.myVariable;//这里会出现undefined异常 2,私有方法(private methods)
与私有属性类似,私有方法也仅在构造函数作用域内可见。示例如下:
代码如下:
function MethodTest()
{
var myMethod = function()//private
{
alert("private method");
}
this.invoke = function()
{
//能够访问到myMethod
myMehtod();
}
}
var mt = new MethodTest();
mt.myMethod();//错误。使用trycatch的话,可捕获“对象不支持此属性或方法”异常
mt.invoke(); 3,公共属性(public properties)
公共属性与公共方法定义
function PrivilegedVariable()
(1)使用 this 关键字进行定义。示例如下:
代码如下:
function PrivilegedVariable()
{
this.variable = "privileged variable";
}
var pv = new PrivilegedVariable();
pv.variable;//返回 "privileged variable" (2)通过构造函数的 prototype 属性进行定义。示例如下:
代码如下:
function PublicVariable(){}
PublicVariable.prototype.variable = "public variable";
var pv = new PublicVariable();
pv.variable;//返回"public variable" 4,公共方法(public methods)
同理,定义公共方法也有两种主要方式。
(1)通过 this 关键字定义。(2)通过构造函数的 prototype 定义。
此处省略具体代码示例。
5,静态属性(static properties)
静态属性与静态方法
直接挂载在构造函数上的属性(静态属性)无法通过实例访问,仅构造函数自身可使用。例如:
代码如下:
function StaticVariable(){}
StaticVariable.variable = "static variable";
var sv = new StaticVariable();
sv.variable;//返回"undefined"
StaticVariable.prototype.variable;//返回"undefined"
StaticVariable.variable;//返回"static variable" 6,静态方法(static methods)
直接挂载在构造函数上的方法(静态方法)同样无法通过实例访问,仅构造函数自身可用。
代码示例省略。
JS语法错误会阻止加载吗?区分SyntaxError与资源加载失败
2026-11-05 16:08:46
JavaScript常见SyntaxError语法错误排查与修复方法
2026-11-05 13:58:44
JS中slice、substring和substr截取字符串的区别
2026-11-05 13:43:47
JS 转 TS 手动迁移最佳实践:从配置 tsconfig 到消除 any 类型
2026-11-05 11:53:32
为什么JS数组push后得到的是数字而不是数组?
2026-11-05 09:59:18
