在JS中充分使用面向对象设计思想,可以极大限度的提升代码重用、降低模块间的偶合、更好的逻辑分层与并行开发。下面分几个步骤简单谈下我的理解。
一、数据类型与包装类
包装类 …… 类型名 …… 常见值 …… 分类
Number …… number …… 123.123 …… 基本数据类型
Boolean …… Boolean …… true、false …… 基本数据类型
String …… string …… “hello world!” …… 基本数据类型
Object …… object …… {}、[] …… 复合数据类型
Function …… function …… function(){} …… 特殊类型
无 …… undefined …… undefined、未定义 …… 小数据类型
无 …… null …… null …… 小数据类型
内置类型与本文关系不大,不列出。
二、引用类型与值类型
引用类型:object function
值类型:number、boolean、string、null、undefined
三、new function(构造器)与prototype(原型)
关于prototype的设计模式就不多说了,网上很多介绍,以一个例子介绍一下js中使用new构造对象的过程。
function classname(){this.id=0;} var v=new classname();
当使用function构造对象时,进行以下流程:
1、 查找classname的prototype,并进行浅拷贝。
2、 绑定this指针到拷贝来的对象。
3、 将this.constructor属性设置为classname。
[注:其实classname.prototype.constructor的值也被设置为classname,第六部分会说明]
4、 执行用户{}中的代码。
5、 返回this指针赋予左值v。
四、实现面向对象的三个基本特征
1、 封装
封装这个大家都明白,在js中,重点在于访问权限。在其他原生支持面向对象语言中,一般支持public、protected、private三个关键字来控制访问权限,但在js中,我们只能依靠复杂的作用域关系来控制:
citySHOP是一款集CMS、网店、商品、分类信息、论坛等为一体的城市多用户商城系统,已完美整合目前流行的Discuz! 6.0论坛,采用最新的5.0版PHP+MYSQL技术。面向对象的数据库连接机制,缓存及80%静态化处理,使它能最大程度减轻服务器负担,为您节约建设成本。多级店铺区分及联盟商户地图标注,实体店与虚拟完美结合。个性化的店铺系统,会员后台一体化管理。后台登陆初始网站密匙:LOVES
0
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号