javascript:面向对象

抖音小游戏(IAA)巨量引擎投放指南 摘要:本文详细介绍了在巨量引擎平台投放小游戏广告的完整流程,包括五个关键步骤:1)添加小游戏资产,填写ID等信息并等待审核;2)添加事件管理,配置激活和关键行为事件;3)通过橙子建站创建落地页,设置跳转链接;4)新建广告项目,选择小程序推广目标;5)完成广告创建。 阅读详情

javascript是一门面向对象的语言,那首先,我们先复习一下何为面向对象:

1.一切事物皆为对象;

2.对象具有封装性和继承性;

3.对象和对象之间使用消息通信,各自存在消息隐藏


对于第一点,js做的很彻底,在js中,一切皆为对象,除了普通的对象外,函数也作为对象,以至于js里是没有类的概念的,那么js怎么实现封装,继承呢?

首先是封装

说到封装,就是对象作为相对独立的个体存在,外界对对象内部的访问有限制,比如在java,c#中,对对象的属性,方法有public,private之分,而在js中,对象的封装更为简单。

先说变量的作用域,变量无非由全局变量和局部变量之分,在js中,内部的对象(函数也是对象)是可以访问外部对象的属性的,

而外部是无法访问对象的局部变量的,这一点就天然形成了js对象比较好的封装性,那么怎样实现外部对内部的访问呢?闭包可以是实现之一需求。



上述代码就实现了闭包,在我看来,闭包的概念是这样的:首先,基于js的特点,要想访问对象内部的属性,只能用对象内部的对象访问,即f1函数内部的f2,一次来访问f1内部的n,然后返回f2,这样f1的外部就可以通过返回的f2来访问f1内部的属性了,这就是闭包,建立了函数内部和函数外部链接的桥梁。这样对象的封装性就解决了(既有密封性,又可以实现内部的访问)。说到闭包的作用第一点就是实现了上面讲的对对象内部的访问,第二点是让这些变量始终存在于内存中,比如:


可以看出n的值始终存在于内存中,其实也不难理解,既然f2都被外界引用了,那么f2使用的f1也应该存在啊。。。。。

 

然后是继承,


对于像java,c#等基于类的语言来讲,我们很容易通过父类子类实现继承,但javascript中没有类的概念,那么javascript是怎样实现继承的呢?

javascript是通过原型(prototype)的方式实现继承的。



在javascript中,对象的创建可以通过函数构造器来构造对象,每个构造器实际上是一个函数对象,该函数对象有一个“prototype”的属性用于实现基于原型的继承和共享属性。




我们可以这样理解,每个构造器的prototype相当于指向这个构造器的“父类”的引用。

我们把一些共性的属性就可以放到prototype中,然后new出来的新对象就具有它的prototype所具有的属性,实现了继承。个人觉得,其实prototype更趋近与“类”的概念。既然对象可以有prototype,那么prototype是对象,它也可以有prototype,于是“原型链”就这么产生了,在访问对象属性时,会一层一层的查找,先从对象本身,在沿着“原型链”往上找。这一“沿着原型链往上找”的特点,也可以用来实现属性的隐藏。

由于本人是先接触的java这种纯面向对象的语言,再接触js的,所以在学习js的过程中,习惯与java进行对比,不过二者都是用各自的方式实现“面向对象”的,面向对象是方法论。

 

在Matlab中开发AutoSAR模型的流程(自下而上) 前面介绍了AutoSAR软件组件开发的两种方式,其中自下向上的方式,是从模型出发,流程如下。 阅读详情

相关推荐

墨水屏高效开发:架构、开源库与实战优化指南

嵌入式显示技术中,电子墨水屏以其类纸观感和超低功耗特性,在电子书阅读器、智能办公本及工业仪表等场景中占据独特地位。其工作原理基于微胶囊电泳技术,仅在画面刷新时消耗电能,静态显示时功耗近乎为零,这带来了极致的续航优势。为实现流畅的交互体验,开发者需构建分层渲染架构,通过硬件抽象层统一驱动接口,并引入帧缓冲与差异比较算法智能决策局部刷新区域,从而大幅降低刷新延迟与功耗。开源库如GxEPD2和LVGL为墨水屏适配提供了关键支持,结合波形文件管理与电源优化策略,能有效解决残影与卡顿问题。本文聚焦于eink墨水屏高效

weixin_42545636的博客 411

如何构建健壮的JavaScript代码:JS Raccoon的面向对象编程教程

在JavaScript开发中,面向对象编程(OOP)是构建健壮、可维护代码的核心技术之一。JS Raccoon项目提供了丰富的面向对象编程指南,帮助开发者理解从基础概念到实战应用的完整流程。本文将通过JS Raccoon的教程,带你掌握JavaScript面向对象编程的精髓,创建更加模块化和可扩展的代码结构。 ## 理解JavaScript中的数据类型:基础中的基础 🧱 JavaScript

gitblog_00558的博客 647

Ollama本地大模型部署指南:从核心原理到实战避坑

大语言模型(LLM)作为人工智能领域的核心技术,通过海量数据训练获得强大的语言理解和生成能力。其工作原理基于Transformer架构,通过自注意力机制处理序列数据,在文本生成、代码编写和对话系统等场景展现出巨大价值。随着开源模型的普及,本地部署成为关注焦点,它解决了数据隐私和定制化需求,但面临环境配置和资源管理的挑战。Ollama作为开源工具,通过封装模型格式和统一API,简化了本地部署流程,支持GPU加速和性能调优,让开发者能够快速集成到IDE和自动化脚本中,实现高效的本地AI应用部署。

weixin_30915951的博客 452

JavaScript高级:js中面向对象编程

JavaScript高级:js中面向对象编程:1 引言;2 封装性;3 原型;4 数组扩展案例--> 求和 和 最大值;5 原型对象中的constructor属性;6 对象原型;7 对象原型中的constructor属性;8 上述总结;9 原型继承;10 原型链

xiaoxie_life_study 1357

VisionMaster4.2.0与C#控件开发实战:从入门到精通的完整指南

本文详细介绍了VisionMaster4.2.0与C#控件开发的实战指南,从基础环境搭建到核心控件使用,再到高级功能实现。通过VmFrontendControl、VmGlobalToolControl等核心控件的深入解析,帮助开发者快速掌握机器视觉应用开发技巧,提升开发效率。特别适合需要集成VisionMaster4.2.0 SDK进行视觉系统开发的C#程序员。

weixin_42665725的博客 383

使用3dmax Morpher制作Unity表情动画

关于游戏人物的面部表情动画 方案一:如果面部骨骼数丰富的话,可以直接做骨骼动画 方案二:采用变形器(3dmax是Morpher,maya是blendshape)修改相应通道的权重值来做表情动画 本文简述方案二的做法。 说明:本文截图中3dsMax版本为2017。笔者第一次使用3dsMax,欢迎指正。 3dmax中导入人物模型,选择需要变形的对象,即head。当前对象附带skin信息。 ...

写作帮助思考 2万+

Acticle 11:javascript面向对象:js的面向对象

什么是js的面向对象呢? 面向对象就是面向对象就是具有抽象、封装、继承的示例,它由方法和属性组成。举个例子吧:比如Date函数,里面就有很多的方法可以调用。我们不用了解它里面的代码,还可以自己构造函数。面向对象有三大特点: a.抽象性–抓住核心问题 b.封装性–不考虑内部实现,只考虑功能使用 c.继承性–从已有对象上,继承出新的对象构造函数编写: 首先是基本的对象创建:<!DOCTYPE

amytun_yu的博客 306

杰理接入第三方升级协议OTA教程

本教程介绍了使用dual_bank_updata_api.h接口接入第三方协议进行固件升级的方法。主要内容包括:INI配置要求(需启用双备份并强制4K对齐)、7个核心API接口功能说明及参数详解(初始化、空间检查、数据写入、校验等)、标准升级流程步骤(初始化→检查→写入→校验→引导→清理)。特别强调了4K对齐配置的重要性以避免数据丢失,并提供了被动升级流程图。该方案支持用户自定义协议接入,需严格按照流程调用接口完成升级。

qq_42014563的博客 1430

JavaScript学习总结三:js基于原型面向对象

JavaScript原型概念说不好理解其实没那么难,说好理解其实也没那么简单,关键是你有没有找到一个合适自己的理解方法。   预备知识:       我想研究js原型的人肯定对js有一定了解,所以基础的知识不再赘述。但是我还要强调一些变态的知识点: l  JavaScript没有类的概念,是基于原型的面向对象。 l  function这个关键字一定要理解正确!这不是传统意义上的定义函数的

杨元的博客 959

Python 爬虫实战:就业市场趋势数据抓取与行业洞察

在当今竞争激烈的就业市场中,了解行业趋势和就业形势对于求职者、学生以及人力资源专业人士来说至关重要。通过获取和分析就业市场数据,我们可以深入了解不同行业的招聘需求、薪资水平、技能要求等关键信息,从而为职业规划和人才发展提供有力支持。

yansideyucsdn的博客 1406

YOLOv13|损失函数优化篇:Focal EIOU 保持良好性能的同时,提供更高效的计算和更稳定的训练过程-包源码

Focal IoU与EIoU:目标检测中的损失函数优化 摘要:本文深入探讨了目标检测中两种重要的边界框回归损失函数优化方法。Focal IoU借鉴Focal Loss思想,通过(1-IoU)^γ因子调节损失权重,使模型更关注难样本(低IoU预测框),有效解决了传统IoU Loss对难易样本权重相同的问题。EIoU则在CIoU基础上改进,通过简化长宽比计算、分离宽高损失项,提升了计算效率和训练稳定性。两种方法分别从样本权重分配和损失函数结构优化角度,显著提升了目标检测性能,为实际应用提供了更高效的解决方案。文

FJN110的博客 1864

JavaScript面向对象编程:从原型到class,跟着加菲猫吃透 JS 面向对象

JavaScript 的面向对象基于原型而非类,从构造函数、原型链到组合继承,再到 ES6 的 class 语法糖,核心始终是“委托”机制。本文以加菲猫为例,深入浅出讲解 this 指向、call/apply 继承、原型查找、hasOwnProperty 安全使用等关键概念,并揭示 class 背后的原型本质,助你彻底吃透 JS OOP。

2302_80706750的博客 774

实战!C#整合YOLO+Halcon做玻璃瓶口缺陷检测:裂纹识别+尺寸测量一步到位(附DLL交互代码)

AI擅长语义识别(裂纹、缺陷),传统机器视觉擅长精密测量(尺寸、位置),C#做整合层,才能满足工业生产的“精度+效率+稳定性”要求。这套方案不只是玻璃瓶检测能用,改改模型和测量逻辑,还能用到瓶盖缺陷检测、饮料瓶液位检测等场景。如果你们厂也有类似的质检痛点,评论区留个言,我帮你看看怎么调整算法参数。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 870

js开发: JavaScript 中的面向对象的初步理解

我在学习JS的面向对象编程的时候,总是有两个奇怪的问题。 第一个就是:面向对象在JS中很少用到。。。   可能是目前自己做的项目还是比较简单,前端方面的任务我几乎都是用面向过程的方式写的,所以就导致,我啃了那么久的书,代码也跟着书上的例子敲了,但好像一点收获也没有,还是不知道JS的面向对象有什么用。当然,我知道是自己目光短浅。。因为JS可是像个单身很久的家伙一样一直强调“万物皆对象

Generon的博客 519

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

javascript基础篇:关于js面向对象的理解

关于js中面向对象的理解 面向对象编程(oop) 它是一种编程思想 (object-oriented programming ), 我们的编程或者学习其实是按照类、实例来完成的学习类的继承、封装、多态 封装 把实现一个功能的代码封装到一个函数中(一个类中),以后再想实现这个功能,只需要执行这个函数方法即可,不需要再重复的编写代码。低耦...

weixin_33922670的博客 194

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

JavaScript对象:面向对象还是基于对象?

与其它的语言相比,JavaScript 中的“对象”总是显得不那么合群。 一些新人在学习 JavaScript 面向对象时,往往也会有疑惑: 为什么 JavaScript(直到 ES6)有对象的概念,但是却没有像其他的语言那样,有类的概念呢; 为什么在 JavaScript 对象里可以自由添加属性,而其他的语言却不能呢? 甚至,在一些争论中,有人强调:JavaScript 并非“面向对象的语言”,而是“基于对象的语言”。这个说法一度流传甚广,而事实上,我至今遇到的持有这一说法的人中,无一能够回答“如何定

huhaiqing106的博客 331

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

6.javascript对象:面向对象还是基于对象

1.什么是面向对象 我们先来说说什么是对象,因为翻译的原因,中文语境下我们很难理解“对象”的真正含义。事实上Object(对象)在英文中,是一切事物的总称,这和面向对象编程的抽象思维有互通之处。 中文的“对象”却没有这样的普适性,我们在学习编程的过程中,更多是把它当作一个专业名词来理解。 但不论如何,我们应该认识到,对象并不是计算机领域凭空造出来的概念,它是顺着人类思维模式产生的一 种抽象(于是面...

小毛驴的博客 324

重新认识JavaScript-Js面向对象(1): 理解对象

目标 理解对象 创建对象实例 理解Js中的继承 前言 对象是JavaScript的基础 什么是面向对象? 面向对象编程(Object Oriented Programming,缩写为 OOP)是目前主流的编程范式。 它将真实应用场景中各种复杂的关系,抽象出来,用对象之间的协作来模拟这种关系。 所以,对象是对单个实物的抽象,面向对象编程就是将事物之间的关系抽象成对象来实现 Js中的面向...

LeoYY3的博客 317

重学前端-总结:06 、JavaScript对象:面向对象还是基于对象?

文章目录重学前端-总结:06 、JavaScript对象:面向对象还是基于对象?什么是面向对象?背景JavaScript 对象的特征-JavaScript 对象的两类属性结语 重学前端-总结:06 、JavaScript对象:面向对象还是基于对象? 如何定义面向对象和基于对象”这个问题。 实际上,基于对象和面向对象两个形容词都出现在了 JavaScript 标准的各个版本当中。 我们可以先看看 J...

Brave Soul Blog 352

javascript中的面向对象_JavaScript: 面向对象编程,带你认识JS的封装、继承和多态...

首先,什么是面向对象编程 ?什么是面向对象呢,用java中的一句经典语句来说就是:万事万物皆对象。面向对象的思想主要是以对象为主,将一个问题抽象出具体的对象,并且将抽象出来的对象和对象的属性和方法封装成一个类。面向对象和面向过程的区别:面向对象和面向过程是两种不同的编程思想,我们经常会听到两者的比较,刚开始编程的时候,大部分应该都是使用的面向过程的编程,但是随着我们的成长,还是面向对象的编程思想比...

weixin_39809168的博客 72

15 | 重剑无锋,大巧不工:JavaScript面向对象

今天我们学习了 JavaScript 面向对象的实现方式和相关的重要特性,希望你能够掌握介绍到的知识点,通过思考和吸收,最终可以在项目中写出易于维护的高质量代码。现在,我想提两个问题,请你挑战一下:在你经历的项目中,是否使用过面向对象来进行 JavaScript 编码,项目的代码质量是怎样的?和静态语言不同的是,JavaScript 有好多种不同的方式来实现继承效果,除了文中介绍的原型链继承和构造继承以外,你是否还知道其它的 JavaScript 继承实现方式?

qq_37756660的博客 955

33-js-concepts中的原型继承:JavaScript面向对象编程的精髓

33-js-concepts是一个帮助开发者掌握JavaScript核心概念的优质开源项目,其中原型继承作为JavaScript面向对象编程的核心机制,是每个JavaScript开发者必须理解的关键知识点。本文将深入解析原型继承的工作原理、实际应用以及在33-js-concepts项目中的相关资源,助你轻松掌握这一JavaScript精髓。 ## 什么是JavaScript原型继承? Java

gitblog_00347的博客 1044

给 Javascript 加上面向对象的属性:Class.js

JavaScript 默认是没有 class 的语法,Class.js 通过不到 1K 的代码给 JavaScript 语言提供一个基本的类的结构。 创建一个类 One = { message:'', set:function(val){ this.message = val; }, get:function(){ alert(this.message); } ...

weixin_34114823的博客 83

Js中面向对象的三大特点:封装、继承、多态

Js中面向对象的三大特点:封装、继承、多态 前言:面向对象、对象、构造函数、原型对象、原型链 面向对象:程序中,都是先用对象结构,集中保存一个事物的属性和功能,然后再按需使用事物的属性和功能,这种编程思想就是面向对象。 对象:程序中,集中存储一个事物属性和功能的程序结构/存储空间。 构造函数:专门描述同一类型的所有对象的相同结构的函数。 原型对象:该类型下所有子对象集中保存共有成员方法或属性的一个父级对象。 原型链:由多级父对象逐级继承形成的链式结构。 一.封装(创建对象) 用{}创建一个对象:

神奇的兔子 2272

JS---JavaScript面向对象编程<一>:封装

前面说过,JavaScript是一种基于对象(object-based)的语言;因JavaScript的语法中没有class(类),因此它又不是一种真正的面向对象编程语言。此文简单说一下js面向对象编程的封装部分。     如果我们要把"属性"(property)和"方法"(method)封装成一个对象,甚至要从原型对象生成一个实例对象,我们应该怎么做? 一.生成对象的原始模式

马兆娟 廊坊师范学院信息技术提高班第八期 6953

js - JavaScript面向对象编程<一>:封装

前面说过,JavaScript是一种基于对象(object-based)的语言;因JavaScript的语法中没有class(类),因此它又不是一种真正的面向对象编程语言。此文简单说一下js面向对象编程的封装部分。     如果我们要把"属性"(property)和"方法"(method)封装成一个对象,甚至要从原型对象生成一个实例对象,我们应该怎么做? 一.生成对象的原始模式

Beluga_白鲸 996
上一篇: 三种工厂模式
以梦代码
博客等级 码龄14年 1粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值