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

【Javascript】深入理解Javascript中的面向对象编程 【Javascript】深入理解Javascript中的面向对象编程, 理解如何在javascript实现面向对象的封装、继承和多态的使用 阅读详情

我在学习JS的面向对象编程的时候,总是有两个奇怪的问题。

第一个就是:面向对象在JS中很少用到。。。  

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

第二个是:prototype 这个鬼。。。

刚开始学面向对象的时候,我仗着自己Java底子还不错,直接就去找了一个JS面向对象的实例去看。当然,看完就懵逼了.... 

然后啃书 《JavaScript高级程序设计》,看完之后彻底蒙圈。。。prototype这个鬼到底是什么鬼啊。

所以,今天去看了教学视频,感觉从视频中还是学习到了一部分经验,就来记录一下,为以后进一步研究打个基础。

首先,先说说 prototype 这个家伙。他有个很常见的称呼——原型。当初就是因为这个名字把我带进了坑里,直接导致我的学习目标变成了“我要知道原型到底是个什么鬼”。其实原型有个很好的理解方法,这是我今天在视频中学到的。

如果你要对CSS有一定的了解,那我们可以把原型看做是CSS样式中的类(class),而通过构造函数new出来的对象就像是文档中引用了这个类的元素。

因为有相同class的元素,他们的样式都相同,要写让他们其中若干个产生变化,那我们一般都会采取 行间样式(style)这种方式来修改,让他们体现不同,利用这样的特性我们可以把属性就理解成元素的行间样式。

这样理解的话会不会容易一点?反正我是有种被点化的感觉..通过这样的方式,写一个简单的面向对象的例子:

[html]  view plain  copy
  1. <!DOCTYPE html>  
  2. <html lang="en">  
  3. <head>  
  4.     <meta charset="UTF-8">  
  5.     <title>Title</title>  
  6.     <script>  
  7.         function Person(name){  
  8.             this.name = name;  
  9.         };  
  10.   
  11.         Person.prototype.sayHello = function (){  
  12.             console.log(this.name +" say hello~");  
  13.         }  
  14.   
  15.         var tom = new Person('tom');  
  16.         var jerry = new Person('jerry');  
  17.   
  18.         tom.sayHello();  
  19.         jerry.sayHello();  
  20.     </script>  
  21. </head>  
  22. <body>  
  23.   
  24. </body>  
  25. </html>  


这样就有一点面向对象的意思了,当你运行程序  就会 看到 效果。


最后,总结一下这个简单的面向对象的方法:

构造函数加属性,原型prototype加方法,这样就实现了JS的面向对象。


以上就是我对JS面向对象的初步认识。

深入掌握JavaScript Node.js开发 本文还有配套的精品资源,点击获取 简介:JavaScript是前端开发中的主导语言,在Node.js环境下的服务器端编程中也显示出重要性。Node.js是一个基于V8引擎的跨平台JavaScript运行环境,具有事件驱动和非阻塞I/O特性,适用于构建高性能的并发服务器。该压缩包文件可能包含有关Node.js核心概念和模块的资料,比如模块化设计、文件系统操作、HTTP服务器创... 阅读详情

相关推荐

MCPE中的JavaScript Hack探索:Ghost Hack.js实战指南

本文还有配套的精品资源,点击获取 简介:MCPE是一款广受欢迎的移动游戏,而Ghost Hack.js作为一种玩家开发的非官方JavaScript脚本工具,赋予了游戏更多可能,包括透视、无尽资源等。该工具需要玩家具备JavaScript基础,以便定制脚本以优化游戏体验。Ghost Hack.js利用事件监听、游戏对象操作、数据包操作、性能优化和安全考虑等技术点,为玩家打开了...

weixin_42510201的博客 1973

JavaScript 中的面向对象的初步认识

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

weixin_30872733的博客 158

如何在Vitis 2023.1上快速搭建LWIP Echo Server(附YT8521S PHY调试心得)

本文详细介绍了在Vitis 2023.1开发环境下,基于Xilinx MPSoC平台快速搭建LWIP Echo Server的完整实战流程。内容涵盖从Vivado硬件工程配置、Vitis软件工程创建,到关键代码剖析与定制化修改,并重点分享了调试非标准PHY芯片(如YT8521S)的宝贵心得与常见问题排查方法,旨在帮助开发者高效实现FPGA与上位机间的可靠网络通信验证。

weixin_29250403的博客 133

理解js中的面向对象

面向对象(oop)是一种思想,和面向过程不同。典型的面向对象编程语言有很多,如pathon、JavaScript等,在js中一切皆对象,特点是封装继承多态。

接着奏乐接着舞的博客 5064

网络虚拟化介绍(OVS、DVS)

网络虚拟化概念网络虚拟化就是把网络层的一些功能从硬件中剥离出来,建立新的网络虚拟层;该虚拟层可以接管网络服务和配置,实现网络服务与物理层的解耦,打破物理资源限制;通过网络虚拟层能够在一个物理网络上模拟出多个逻辑网络,并且多用户在逻辑网络上相互隔离,保证网络安全网络虚拟化的特点隔离性:不同租户的流量相互之间不能互访;但是IP/MAC地址都可以独立规划可移动性:虚拟机可以跨二层/三层迁移,甚至可以跨广域网迁移(迁移前后虚拟机Vlan和IP地址都不会发生变化)可扩展性:逻辑网络的规模和数量可扩展。

m0_49864110的博客 1万+

傻瓜教程:使用GeoServer发布离线地图服务

一、离线地图下载 离线地图分为两种:一种叫“金字塔瓦片”数据,一种叫“矢量地图数据”。我们看的在线地图比如,百度,谷歌,高德等等网页上的地图,都是金字塔瓦片;另外一种是手机上用来导航的,比如高德地图APP,也可以下载离线地图数据,这个就是矢量的。 卫星影像地图都是金字塔瓦片,无矢量数据。 因此,我们所说的离线地图下载通常都是指离线地图金字塔瓦片数据下载。 离线地图金字塔瓦片搭建的离线地图服务分很多种:一般有WEB方式,TMS、WMTS/WMS等等,不同的应用有不同...

米兰的小码农的博客 1万+

对于JS面向对象的理解

JS面向对象主要基于function来实现的,通过function来模拟类,通过prototype来实现类方法的共享,跟其他语言有着本质的不同,自从有了ES6后,把面向对象类的继承实现更新后端语言实现了,通过class来实现类,通过extends来继承父类,其实ES6类的实现本质是一个语法糖,不过对于开发简单了许多。 ...

wyysgsdbyeorno的博客 326

用C++从零复刻Wordle:手把手教你实现命令行猜词游戏(含完整源码解析)

本文详细介绍了如何使用C++从零开始实现一个命令行版本的Wordle猜词游戏,包含完整的源码解析和核心模块设计。通过游戏逻辑控制器、单词库管理器等模块的构建,开发者可以学习C++实战技巧和性能优化方法,适合提升编程能力和游戏开发兴趣。

weixin_26763955的博客 333

初识JavaScript

初识JavaScript会发生什么事呢

微风洋洋的博客 2197

Win11桌面图标小箭头去除与恢复:解决任务栏关联错误的完整指南

本文提供了一份完整的Win11桌面图标小箭头去除与恢复指南,重点解决了因错误方法导致的任务栏关联错误问题。通过分析注册表中IsShortcut键值与Shell Icons的原理,推荐安全的“替换图标资源法”,并提供了可一键执行的批处理脚本,确保在美化桌面的同时不影响系统功能与默认应用设置。

weixin_29288313的博客 942

【基于 CasADi 的欠驱动无人船实时非线性模型预测控制(NMPC)实现 Visual Studio 2022 C++】

本文介绍了基于CasADi和IPOPT在Visual Studio 2022 C++环境下实现的欠驱动无人船实时非线性模型预测控制(NMPC)方案。文章详细阐述了NMPC基本原理、欠驱动无人船动力学模型(包含状态变量和控制变量定义),并给出了C++实现的核心代码框架。该方案通过显式引入系统动力学模型和约束条件,在每个采样周期滚动优化控制序列,有效解决了欠驱动无人船的轨迹跟踪与避碰问题。文中还提供了VS2022配置CasADi环境的详细步骤,包括预编译包下载、工程属性设置等关键环节,为工程实现提供了完整的技术

vor234的博客 651

JavaScript 面向对象详解

JavaScript面向对象

LBJ辉的前端天地 5260

【23】C++实战篇——C++报错:LNK2001:无法解析的外部符号 ,LNK2019: 无法解析的外部符号,原因分析及解决方法

该文分析了VS项目中出现的"无法解析的外部符号"LNK2001/LNK2019错误。问题表现为跨项目共享变量时,Projector项目无法解析Line项目中声明的外部变量ImgSavePath和ImgFormat。原因在于头文件声明了变量但未包含实现的源文件。解决方法是将getLine.cpp文件添加到Projector项目中。文章还总结了两种错误代码的区别:LNK2001通常对应变量缺失,LNK2019对应函数缺失。最后列出了具体的报错信息,包括无法解析的变量和函数符号。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 2006

深入JavaScript之JS引擎如何执行JS代码

我们大概经常能听到“执行环境”、“作用域”、“原型(链)”、“执行上下文”等内容,它们都在描述什么? JS代码的运行 我们知道了js是弱类型语言,在运行时才确定变量类型。js引擎在执行js代码时,也会从上到下进行 词法分析、语法分析、语义分析 等处理,并在代码解析完成后生成AST(抽象语法树),最终根据AST生成CPU可以执行的机器码并执行。 除此之外,JS引擎在执行代码时还会进行其它处理,如 V8 中还有两个阶段: 编译阶段:该阶段会进行执行上下文的创建,包括创建变量对象、建立作用域链、确定 this

flying meng的菜鸟居 5942

C#串口通信从入门到精通(27)——高速通信下解决数据处理慢的问题(20ms以内)

本文介绍如何在高速通信情况下解决串口接收的数据来不及处理的问题,由高级工程师多年经验总结而成,绝对是串口领域的实战经验!

qq_34059233的博客 6807

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【JS高级进阶】JavaScript初识面向对象

本篇主要讲解了什么是面向对象,如何创建使用类,super关键字的使用以及注意事项(学过Java的小伙伴们就会很容易理解)区分面向对象和面向过程

zhaochen1127的博客 2700

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【原生JS】JavaScript 教程教案

摘要: 老曹的 JavaScript 教程教案 提供从基础到进阶的 20 节系统性课程,涵盖语法、DOM 操作、异步编程、ES6+ 新特性等核心内容。课程分为 基础篇(变量、函数、数组、DOM)和 高级篇(闭包、原型链、Promise、模块化),结合实战项目(如待办清单、天气应用)巩固技能。推荐配套书籍《Eloquent JavaScript》和 MDN 文档,并介绍现代工具链(VSCode、Webpack)。适合零基础入门或开发者进阶,最终目标为掌握全栈 JavaScript 开发能力

silverclayz的技术分享 2452

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

JavaScript的理解,JS的初步认识(一)

什么是 JavaScript 语言? JavaScript 是一种轻量级的脚本语言。脚本语言指的是它不具备开发操作系统的能力,而是只用来编写控制其他大型应用程序的“脚本”。 JavaScript 是一种嵌入式(embedded)语言。它本身提供的核心语法不算很多,只能用来做一些数学和逻辑运算。JavaScript 本身不提供任何与 I/O(输入/输出)相关的 API,都要靠宿主环境(host)提供,所以 JavaScript 只合适嵌入更大型的应用程序环境,去调用宿主环境提供的底层 API。宿主环境最常

yycnf的博客 1797

【JavaScript】js中的原型继承

js中的原型继承

南栀的博客 3705

【JavaScript】JS语法入门到实战

Javascript语法的基本讲解。

大三小白C++进阶之路 2573

【JS&TS】JavaScript进阶Typescript秘籍:JS与TS区别?js和ts的语法上的区别?js开发者,如何更好的过渡为ts开发?

JavaScript 是一种灵活且广泛使用的编程语言,适用于各种Web开发场景。TypeScript 通过增加类型系统,为 JavaScript 提供了更多的工具和结构,特别适合大型项目和需要高度代码维护性的场景。随着前端工程化的发展,TypeScript 越来越受到开发者的青睐。

A-Itfuture的博客 2007

JS(JavaScript)中的面向对象编程——详细总结(附源码)

文章目录一,什么是面向对象二,JS面向对象的几种特征以及类和对象1,面向对象的几种特征2,面向对象中的类和对象三,JS中默认存在的类(常见的)1,Number类2,String类3,Boolean构造器(JS中构造器也叫类)4,Object构造器(存在语法糖)5,Data类6,Math类(不需要new)7,Array类四,JS中的对象1,证明:JS中的一切数据都是对象2,对象是属性的无序集合3,对象属性的增删改查(1)对象属性的遍历(for in)(2)对象属性的增删改4,对象中属性的四大特征(1)conf

qq_44830054的博客 1349

从JS引擎理解并优化javascript代码

序言:作为一名前端工程师,对于javascript大家都不陌生,这篇文章从更深层次的方向——JS引擎去理解javascript到底是怎么运行的,从而进行优化。 JS Engine—— JS 引擎介绍 一、基本介绍 js引擎是一个专门运行javascript的解释器(interpreter)。目前比较主流的js 引擎和介绍,大家可以简单了解一下: V8 —  由谷歌使用C++开源的V8引擎,...

likeconan123的博客 2974

Node.js 和 JavaScript 的区别:深入解析

JavaScript 和 Node.js 的核心区别在于运行环境与应用场景。JavaScript 主要运行于浏览器,用于 DOM 操作和前端交互,受限于沙盒安全机制;Node.js 则是基于 V8 引擎的服务器端运行时,提供文件系统、网络等底层 API,擅长高并发 I/O 操作。两者共享语言语法,但功能生态不同——前端依赖浏览器 BOM/DOM,后端则通过 npm 模块扩展能力。理解这些差异有助于开发者针对 Web 前后端场景选择合适方案,构建高效应用。

你若盛开,清风自来 1850

Vue.js 与 JavaScript:相辅相成的开发伙伴

Vue.js 和 JavaScript 是现代前端开发中不可或缺的工具。Vue.js 基于 JavaScript 构建,并扩展了 JavaScript 的能力,使得开发者可以更高效地构建复杂的用户界面。理解 Vue.js 和 JavaScript 的关系,可以帮助开发者更好地利用它们的特性,提高开发效率和代码质量。无论是初学者还是有经验的开发者,掌握 Vue.js 和 JavaScript 的协同作用都是提升前端开发技能的关键。

2301_81233957的博客 1714

【JS】Javascript中的this到底是什么

JavaScript中的this是一个对于新手来说特别吓人并且不友好的概念。对于一个前端萌新来说,这个概念既模糊,又看不到它存在的意义。本文将解析JavaScript中的this,并且逐一分析他在每个常见场景中的意义和指向。

a1611107035的博客 3273
上一篇: http协议:http协议理解
下一篇: js开发:javascript中的this
Generon
博客等级 码龄11年 135粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值