JavaScript 对象属性的四种类型详解:私有、动态公有、原型与类属性

作者:代码拾荒

时间:2026-10-24

浏览:643

本文详细解析 JavaScript 中对象属性的四种类型:私有属性、动态公有属性、原型属性和类属性。通过具体代码示例,阐述它们在访问权限、实例共享及生命周期上的差异,帮助开发者理解如何正确定义和访问不同作用域的属性。

文章目录

JavaScript 对象属性的四种类型概述

第一种类型是私有属性,其核心特征在于对外部完全不可见。外部代码无法直接访问这些属性,必须通过专门定义的 getter 和 setter 方法来间接读取或修改。


第二种类型属于动态公有属性。这类属性对外部可见,且每个对象实例都拥有自己独立的副本。因此,对一个实例中该属性的修改不会影响其他实例,彼此之间互不干扰。


第三种类型被称为静态公有属性,通常也称为原型属性。它的特点是所有对象实例共享同一个副本。这意味着,如果通过某个实例修改了该属性,其他实例访问时也会看到更新后的值,从而产生相互影响。


第四种类型是类属性(或称为静态属性)。它不属于具体的对象实例,而是归属于构造函数本身。因此,即使没有创建任何对象实例,也可以直接通过类名访问它。下文将通过具体示例展示这四种属性类型的特性与区别。


类型的四种属性


属性类型代码示例与验证

代码如下:

 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Example 21.3</title>
</head>
<body>
<h1 id="output"></h1>
<script language="javascript" type="javascript">
<!-- 
function dwn(s)
{ 
document.write(s + "<br/>");
} 
function myClass()
{ 
var p = 100; //private property; 私有属性
this.x = 10; //dynamic public property 动态公有属性
} 
myClass.prototype.y = 20; //static public property or prototype property 原型属性
myClass.z = 30; //static property //静态属性
var a = new myClass();
dwn(a.p); //undefined 私有属性对象无法访问到
dwn(a.x); //10 公有属性
dwn(a.y); //20 公有属性
a.x = 20;
a.y = 40;
dwn(a.x); //20
dwn(a.y); //40 //动态公有属性y覆盖了原型属性y
delete(a.x);
delete(a.y);
dwn(a.x); //undefined 动态公有属性x被删除后不存在
dwn(a.y); //20 动态公有属性y被删除后还原为原型属性y
dwn(a.z); //undefined 类属性无法通过对象访问
dwn(myClass.z); //30 类属性应该通过类访问
--> 
</script>
</body>
</html>

实用工具推荐

电子包浆

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

使用 ›
图片压缩

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

使用 ›
相关文章