js中如何使用工厂方式和构造函数创建对象,web开发项目实例

简介: js中如何使用工厂方式和构造函数创建对象,web开发项目实例


  • 1)立刻创建对象------ 一旦调用构造函数,立刻创建对象(因为使用new关键字,就如我们前面学习的,使用new会立刻在堆内存中开辟新的空间创建对象
  • 2)将新建的对象设置为函数中的this(因此在构造函数中,可以使用this来引用新建的对象)

最终

  • 3)逐行执行函数的代码
  • 4)将这个新建的对象作为返回值返回

总结:

  • 使用同一个构造函数创建的对象属于同一个类
  • 每个对象称为该类的实例
  • 使用(对象 instanceof 狗仔函数)可以检查obj是否为Person类的实例

如: per instanceof Person --true表示是,反之

使用new Object()方式区别不出来

但是!!!!

per instanceof Object----返回结果是true

Object相当于祖宗,因为所有对象都是它的后代

使用构造函数的存在的缺陷:

对于同功能的方法,完全可以使所有对象共享同一个方法(不用每次创建对象时都创建)

解决方法:

将这个函数提出到全局作用域中

同时,所有又同个构造方法创建的对象的方法都是指向了同一个全局的fun方法

好处:大大节省了空间与提高了性能

但是又引发了新的问题,即尽量不要在全局作用域中添加变量

  • (因为将函数定义在全局作用域中,污染了全局作用域的命名空间
  • 而且定义在全局作用域中不安全(因为开发往往不是一个人开发)

因此,引入新的解决方案

引入:

  • 我们所创建的每一个函数,解析器都会向函数中添加一个属性prototype(对于函数)

1)这个属性对应一个对象,这个对象就是我们所谓的原型对象

2)如果函数作为普通函数调用prototype没有任何作用

3)当函数以构造函数的形式调用,它所创建的对象也会有一个隐含的属性--------该属性指向构造函数的原型对象(prototype)------我们可以通过__proto__访问到该属性

由同一个构造方法创建的对象的__proto__原型属性指向的是同一个对象

原型对象的作用


原型对象就相当于一个公开的区域,所有一个类的实例都可以反问到这个原型对象,因此我们可以将对象中共有的内容,统一设置在原型对象中,即可解决上面所说的全局函数的问题

注意:当我们访问对象的一个属性或者方法时,它会先在自身中寻找,有则直接使用;如果没有则会去原型对象中查找,找到则直接使用

向原型中添加函数同理,这样便解决上述的定义全局函数污染变量命名空间的问题,如下定义

总结:

以后我们创建构造函数时,可以将这些对象共有的属性和方法,统一添加到构造函数中!这样不用为每一个对象添加,也不会影响全局作用域,就可以使每个对象都具有这个属性和方法了


ps:使用in检查对象中是否含有某个属性时,如果对象中没有,但是原型中有。也会返回true,


相关文章
|
5月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
528 4
|
6月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
663 1
|
9月前
|
缓存 JavaScript 前端开发
鸿蒙5开发宝藏案例分享---Web开发优化案例分享
本文深入解读鸿蒙官方文档中的 `ArkWeb` 性能优化技巧,从预启动进程到预渲染,涵盖预下载、预连接、预取POST等八大优化策略。通过代码示例详解如何提升Web页面加载速度,助你打造流畅的HarmonyOS应用体验。内容实用,按需选用,让H5页面快到飞起!
|
9月前
|
JavaScript 前端开发 API
鸿蒙5开发宝藏案例分享---Web加载时延优化解析
本文深入解析了鸿蒙开发中Web加载完成时延的优化技巧,结合官方案例与实际代码,助你提升性能。核心内容包括:使用DevEco Profiler和DevTools定位瓶颈、四大优化方向(资源合并、接口预取、图片懒加载、任务拆解)及高频手段总结。同时提供性能优化黄金准则,如首屏资源控制在300KB内、关键接口响应≤200ms等,帮助开发者实现丝般流畅体验。
|
前端开发 JavaScript Shell
鸿蒙5开发宝藏案例分享---Web页面内点击响应时延分析
本文为鸿蒙开发者整理了Web性能优化的实战案例解析,结合官方文档深度扩展。内容涵盖点击响应时延核心指标(≤100ms)、性能分析工具链(如DevTools时间线、ArkUI Trace抓取)以及高频优化场景,包括递归函数优化、网络请求阻塞解决方案和setTimeout滥用问题等。同时提供进阶技巧,如首帧加速、透明动画陷阱规避及Web组件初始化加速,并通过优化前后Trace对比展示成果。最后总结了快速定位问题的方法与开发建议,助力开发者提升Web应用性能。
|
7月前
|
JavaScript Java 微服务
现代化 Java Web 在线商城项目技术方案与实战开发流程及核心功能实现详解
本项目基于Spring Boot 3与Vue 3构建现代化在线商城系统,采用微服务架构,整合Spring Cloud、Redis、MySQL等技术,涵盖用户认证、商品管理、购物车功能,并支持Docker容器化部署与Kubernetes编排。提供完整CI/CD流程,助力高效开发与扩展。
865 64
|
9月前
|
JSON 开发框架 自然语言处理
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(三)
本文主要介绍了应用开发中的三大核心内容:生命周期管理、资源限定与访问以及多语言支持。在生命周期部分,详细说明了应用和页面的生命周期函数及其触发时机,帮助开发者更好地掌控应用状态变化。资源限定与访问章节,则聚焦于资源限定词的定义、命名规则及匹配逻辑,并阐述了如何通过 `$r` 引用 JS 模块内的资源。最后,多语言支持部分讲解了如何通过 JSON 文件定义多语言资源,使用 `$t` 和 `$tc` 方法实现简单格式化与单复数格式化,为全球化应用提供便利。
335 104
|
8月前
|
安全 JavaScript Java
java Web 项目完整案例实操指南包含从搭建到部署的详细步骤及热门长尾关键词解析的实操指南
本项目为一个完整的JavaWeb应用案例,采用Spring Boot 3、Vue 3、MySQL、Redis等最新技术栈,涵盖前后端分离架构设计、RESTful API开发、JWT安全认证、Docker容器化部署等内容,适合掌握企业级Web项目全流程开发与部署。
714 0

热门文章

最新文章