JavaScript 对象成员的可见性:私有、公共与静态属性详解

作者:小括号时间:2026-10-24 07:29:10浏览:348

本文详细解析 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)

直接挂载在构造函数上的方法(静态方法)同样无法通过实例访问,仅构造函数自身可用。


代码示例省略。

作者最新文章