JavaScript 中类的实现:私有变量、方法与析构函数

作者:拾光

时间:2026-10-24

浏览:448

本文介绍在 JavaScript 中实现类的常用方法,涵盖公有与私有方法、属性及私有变量的定义。重点解析 this 指向问题,通过保存 _self 变量解决上下文切换导致的引用错误,并演示如何在构造函数末尾实现类似析构函数的初始化逻辑,最后展示类的实例化使用方式。

文章目录

JavaScript 类的实现与特性

本文将探讨在 JavaScript 中编写类与静态类的具体实现方式。这是作者惯用的技巧,读者若有更便捷的方法,欢迎在评论区交流分享。


首先介绍类的构成要素,一个完整的类通常包含以下特征:


1. 公有方法


2. 私有方法


3. 属性


4. 私有变量


5. 析构函数


类代码示例与 this 指向解析

接下来通过一个具体示例进行说明:


类示例代码


代码如下:

 
/***定义类***/
var Class = function(){
var _self = this;//把本身引用负值到一变量上
var _Field = "Test Field"; //私有字段
var privateMethod = function(){ //私有方法
alert(_self.Property); //调用属性
} 
this.Property = "Test Property"; //公有属性
this.Method = function(){ //公有方法
alert(_Field); //调用私用字段
privateMethod(); //调用私用方法
} 
} 

代码中已添加详细注释,便于理解。对于 JavaScript 初学者而言,可能会疑惑为何要定义 _self 变量。这是因为在 JavaScript 中,this 关键字的行为与其他面向对象语言不同,其解析过程及运行时的指向会发生变化。此处简要说明 this 的定义:


定义:this 是包含它的函数作为方法被调用时所属的对象。


特征:this 的环境可以随着函数被赋值给不同的对象而改变!


有兴趣的读者可查阅相关资料深入了解。回到正题,这里定义 _self 的目的是创建一个指向类实例本身的私有变量引用。


析构函数的实现与使用

此前提到的析构函数问题,可通过在构造函数末尾直接执行特定代码来实现。


代码示例


代码如下:

 
/***定义类***/
var Class = function(){
var _self = this;//把本身引用负值到一变量上
var _Field = "Test Field"; //私有字段
var privateMethod = function(){ //私有方法
alert(_self.Property); //调用属性
} 
this.Property = "Test Property"; //公有属性
this.Method = function(){ //公有方法
alert(_Field); //调用私用字段
privateMethod(); //调用私用方法
} 
/***析构函数***/
var init = function(){
privateMethod();
} 
init();
} 

使用该类时,引用同事的话来说就是“简单得很!”


var c = new Class();


这样即可完成类的实例化。


关于类的定义部分到此结束,静态类的实现将在后续文章中介绍。


一个人能够走多远,取决于与谁同行

实用工具推荐

电子包浆

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

使用 ›
图片压缩

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

使用 ›
相关文章