JS之用面向对象和传统过程式编程

JavaScript 面向对象编程思想简介 JavaScript 面向对象编程JavaScript 执行过程JavaScript 面向对象编程面向对象介绍什么是对象什么是面向对象程序中面向对象的基本体现创建对象简单方式简单方式的改进:工厂函数构造函数更优雅的工厂函数:构造函数解析构造函数代码的执行构造函数和实例对象的关系构造函数的问题 JavaScript 执行过程 JavaScript 运行分为两个阶段: 预解析 全局预解析(所有变量和函数声明都会提前;同名的函数和变量函数的优先级高) 函数内部预解析(所有的变量、函数和形参都会参与预解析) 阅读详情
JS之用面向对象和传统过程式编程

一、过程式编程
如下图所示,为了实现一个div元素的拖拽功能写的代码,这是过程式编程的写法,当JS代码较少时,没必要使用面向对象。杀鸡无需用牛刀。
    
二、面向对象
改写成面向对象时,可先将普通函数变型,再改成面向对象。
普通方法变型
普通方法变型,变型有3个原则
1)尽量不要出现函数嵌套函数
2)可以用全局变量
3)把onload中不是赋值的语句放到单独函数中
如下代码中,完成了普通函数的变型。
        
改成面向对象
步骤如下:
1)全局变量作为属性,放在构造函数中
2)函数作为方法,放在原型中
3)在onload中创建对象
4)修改this的指向问题。
修改后的代码如下:
        
如果再有另外几个元素需要拖拽,只有创建对象,执行相应函数就行了,代码复用性高。

三、总结
面向对象其实就是在模拟系统对象的行为。比如数组对象的sort、push方法,插拔式的随插随用,还可以组合使用。






JavaScript - OOP编程思想 JavaScript不是一门面向对象的语言,是基于对象的语言,但可以模拟面向对象。 什么是对象(Object) Everything is object(万物皆对象),也叫无序属性的集合。 对象是单个事物的抽象 一台电脑、一个程序员、一辆法拉利、一个服务器等等,这些都可以称之为对象。 当实物被抽象化为对象时,实物之间的关系就变成了对象之间的关系,从而达到模拟现实情况。把一切看做对象,然后进行抽象化... 阅读详情

相关推荐

Rust 与 Golang 深度对决:从语法到应用场景的全方位解析

Rust 定义函数以fn关键字开头,参数需明确指定类型,返回值类型紧跟在箭头->之后。// 定义函数add,接收两个i32类型参数a和b,返回i32类型结果,功能为两数相加a + bRust 和 Golang 各有千秋,在不同领域展现独特优势。Rust 凭借强大的内存安全与高性能,在系统编程、网络编程以及对内存安全和性能要求高的场景中表现突出;Golang 则以简洁语法和出色并发性能,在云计算、分布式系统、Web 开发等领域占据一席之地。

muyouking 1770

JavaScript面向过程编程

javascript基础使用

weixin_64784735的博客 530

微信数据库读取解密脚本 聊天记录查看工具,支持所有微信版本,后期将支持企业微信[Windows]

(1)获取微信昵称、微信账号、微信手机号、微信邮箱、微信KEY的基址偏移(2)获取微信的微信昵称、微信账号、微信手机号、微信邮箱、微信KEY、微信原始ID(wxid_******)(3)获取微信文件夹路径(4)支持查看聊天记录查看(5)根据key解密微信数据库(6)提供数据库部分字段说明(7)支持微信多开场景,获取多用户信息等(8)微信需要登录状态才能获取数据库密钥(9)支持导出聊天记录为html,备份微信聊天记录,方便查看(10)合并多个数据库,方便查看。

weixin_43101935的博客 1万+

JavaScript面向对象编程和面向过程编程

JavaScript编程中多数情况是面向过程编程,但有时候为了更好地封装重用。面向对象思想来编程更为有用。 虽然现前端都开始流行MVC思想的js框架,但并不是说js没用了,学好js对于学习js前端框架,jquery,等都是非常有帮助的。 好了,闲话不说,下面用一个例子,两种写法,来说明面向对象和面向过程编程。 效果如上,一个简简单单的选项卡的例子。 面向过程编程代码:

张东旭 2633

Xilinx XDMA IP核配置实战:AXI Memory Mapped vs Stream选型指南(附PCIe调试技巧)

本文深入解析Xilinx XDMA IP核配置中AXI Memory Mapped与AXI Stream两种DMA接口的核心区别与选型策略。针对PCIe高速数据传输场景,详细对比了二者在数据特性、延迟、硬件资源及软件复杂度上的差异,为FPGA工程师在数据采集、实时处理等项目中做出高效设计决策提供实战指南,并附有关键的PCIe调试技巧。

qsc901234的博客 585

Vitis Model Composer闪退?手把手教你用命令行启动Vivado 2021后的System Generator

本文详细解析了Vitis Model Composer闪退问题的根本原因,并提供了命令行启动Vivado 2021后System Generator的完整解决方案。从环境变量配置、组件缺失排查到权限问题处理,手把手教你通过命令行深度排错,并分享高级自动化脚本和系统优化技巧,帮助开发者高效使用Vitis Model Composer与System Generator进行HDL开发。

weixin_26905487的博客 349

JS与函数式编程(小程序实例)

编程范式(programming paradigm)是软件工程中开发者对于编写代码的构造思路。不同的范式基于不同的理念和原则。函数式编程便是一种基于编写纯函数的代码构造思路。该范式遵守四大原则:1. 函数需纯 2. 避免数据共享 3. 固定变量值 4. 副作用最小化。 1. 纯函数的特点是其针对某个参数固定返回相同的值,并且不产生任何副作用。 2. 共享数据是任何存在于执行环境的公共数据 (e...

weixin_40784198的博客 1551

基于Dify Agent构建智能客服:攻克知识库查询、多轮对话、安全鉴权与人机协同

基于Dify Agent构建智能客服,并将知识库等核心能力工具化,再通过Chatflow进行流程编排,是一种强大且灵活的策略。它不仅解决了当前AI客服面临的诸多核心挑战,也为未来的功能扩展和智能化升级打下了坚实的基础。希望本文能为您在构建高效、智能的AI客服系统之路上提供有益的参考!dify实验室基于LLMOps平台-Dify的一站式学习平台。包含不限于:Dify工作流案例、DSL文件分享、模型接入、Dify交流讨论等各类资源分享。关注我,获取Dify相关资源(DSL、token、交流群等)。

同名公众号:dify实验室 3742

[JS]函数式编程

函数式编程核心理念是就是范畴论react和Angular中运用了大量的函数式编程的思维react中的高阶组件,高阶函数Angular中的rxjs Observable注意事项:1.函数式编程不是用函数(function)来编程2.不能充满大量的if else3.给定一个确定的值,一定会有一个确定的输出值(数学中的函数具有可确定性)专业术语1.纯函数对于相同的输入,永远得到相同的输出。而且没有任何可...

我挚爱桃子 2172

PHM算法与智能分析技术

PHM概述

柳杰的博客 1万+

MCAL知识点(十):ERU驱动配置详解

ERS:外部请求单元ETL:中断逻辑单元OGU:输出逻辑单元MCU里面配置要使用的功能和选择输入的管脚,注意上述模块关注点讲述的ERU必须和边沿检测模块相关联。

梦想技术家 1223

函数式 vs 面向对象 vs 过程式编程三种方法 JavaScript 示例

介绍 这是一个真实的例子,展示了三种最常见的编程范式之间的差异。我将以三种不同的方式解决一个问题。它基于Academind Video,但最终我的解决方案发生了一些变化。 每个示例将处理表单提交、验证用户输入并将创建的用户打印到控制台。我还添加了保存错误记录器。 html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta h...

allway2的博客 500

duilib 之 事件--bubbled冒泡事件应用、通用点击事件、进入离开事件、XML样式中直接添加事件

1. box 绑定点击事件 ui::Box *pSmallVideoBox = (ui::Box*)FindControl(L"rightBox"); if (pSmallVideoBox) { auto SwitchVideo = [this](ui::EventArgs* param){ m_bSecScreenIsScale = m_bMainScre...

目前打算换一个工作,有招聘windows c++方向的也欢迎联系,北京、济南 最好 973

构造函数实现封装特性与原型(一、构造函数的封装)

2.2.1.2 传统过程式编程组合变量与函数这时的函数依赖这个全局变量,在某种程度上“组合”了变量与函数。但是,它们并没有被明确地组合或封装在一个单元内,这使得它们的关系不那么紧密。由于所有东西都在全局命名空间中,任何地方都可以访问和修改这些全局变量,这增加了意外改变数据与命名冲突的风险。随着项目规模增大,管理会变得困难。为了解决这个问题,我们可以采用:立即执行函数表达式 (IIFE)来组合变量与函数。

m0_62726876的博客 1077

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

WINCC7.3破解文件

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

函数式编程学习之路(一)

起点: 作为一个比较资深的码农,写程序是有些年头了.最早用过C,VB,Delphi等写过不少过程式代码. 后来,04,05年左右吧,为了提升技术,仔细思考学习了面向对象,终于有一天开悟,基本上算是进入了面向对象的大门.回头想下当时情景还是印象深刻,就象脑子里照进一束光.(当然这之前也看了各种对象,模式及哲学的书). 最近这多年,凭着当时掌握的那点思想,虽然学习编程技术一直很懒,都是...

aibo110110的博客 134

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

JavaScript 进阶教程(1)--面向对象编程

1 学习目标 理解面向对象开发思想 掌握 JavaScript 面向对象开发相关模式 2 面向对象介绍 2.1什么是对象 Everything is object (一切皆对象) 我们可以从两个层次来理解对象: (1) 对象是单个事物的抽象。 一本书、一辆汽车、一个人都可以是对象,一个数据库、一张网页、一个与远程服务器的连接也可以是对象。当实物被抽象成对象,实物之间的关系就变成了对象之间的关系,从而就可以模拟现实情况,针对对象进行编程。 (2) 对象是一个.

AlbertYang的博客 2万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

JavaScript-编程范例与常见编程范式

在该工厂函数的返回对象中,我们使用简单定义属性的方法,省略属性名,直接写传入参数名,JS引擎会以传入参数的变量名创建为对象的属性并将传入参数的值设为对象的属性值。打印创建的对象obj,可以发现,obj的原型是空对象,但obj的原型的原型就是一个正常的Object,里面有构造函数等基本对象的属性。否则,我们创建的每个对象都是从头开始创建的,这是非常低效的。在JavaScript中我们已经讨论过原型,原型继承是JavaScript使用的一项技术,对象可以调用或继承其原型链中任何对象的方法和属性。

weixin_62467970的博客 869

JavaScript面向对象编程完全指南

本文介绍了JavaScript面向对象编程的核心概念和高级特性。主要内容包括:1)对象定义与创建方式(构造函数、字面量、工厂函数);2)面向对象三大特性(封装、继承、多态);3)原型与原型链机制;4)函数进阶(定义方式、作用域链、四种调用模式及this指向);5)上下文调用模式(call/apply/bind);6)递归函数与深拷贝实现。文章通过大量代码示例详细讲解了JavaScript面向对象编程的核心机制,包括原型继承、作用域链、this绑定等关键概念,适合有一定基础的开发者深入学习。

Dreamcatcher_AC的博客 1215

JavaScript 面向对象编程完整指南

本文是一份完整的JavaScript面向对象编程(OOP)指南,涵盖五大核心章节: 核心概念:介绍OOP基础,包括封装(通过私有属性和方法实现数据隐藏)、继承(使用extends建立类层次结构)和多态(子类对同一方法的不同实现)。 语法实现:详细展示ES6类语法、构造函数、原型链等JavaScript特有实现方式。 设计模式:讲解工厂模式、单例模式等常见OOP设计模式。 实际应用:提供DOM操作、API封装等前端开发中的OOP实践案例。 最佳实践:指出常见误区并给出专业建议。

qq_43086997的博客 1378

JavaScript 面向对象编程思想

JavaScript 面向对象编程思想

m0_59075169的博客 931

javascript面向对象编程

JavaScript 是什么 JavaScript,也称ECMAScript,是一种基于对象和事件驱动并具有相对安全性并广泛用于客户端网页开发的脚本语言,同时也是一种广泛用于客户端Web开发的脚本语言。 javascript的基本特点 是一种解释性脚本语言(代码不进行预编译)。 主要用来向 HTML 页面添加交互行为。 可以直接嵌入 HTML 页面,但写成单独的js文件有利于结构和行为的分离。 j...

weixin_44167338的博客 389

前端基础-JS面向对象编程

第1章 JS面向对象编程 学习目标 初步理解对象是什么及面向对象编程的概念 能够自己创建一个对象 1.1 面向对象介绍 什么是对象? Everything is object (万物皆对象), JS语言中将一切都视为 对象 对象是对概念的具体化体现: 一本书、一辆汽车、一个人都可以是对象,一个数据库、一张网页、一个与远程服务器的连接也可以是对象。 当实物被抽象成对象,实物之间的关...

逍遥云恋 619

JavaScript 面向对象编程

面向对象编程 面向对象介绍 什么是对象 Everything is object (万物皆对象) 对象到底是什么,我们可以从两次层次来理解。 (1) 对象是单个事物的抽象。 一本书、一辆汽车、一个人都可以是对象,一个数据库、一张网页、一个与远程服务器的连接也可以是对象。当实物被抽象成对象,实物之间的关系就变成了对象之间的关系,从而就可以模拟现实情况,针对对象进行编程。 (2) 对象是一个容器...

auuea的博客 482

【JavaScript 漫游】【016】面向对象编程

本篇文章为【JavaScript 漫游】专栏的第 016 篇文章,对 JS 语言中面向对象编程的基础知识、this 关键字、对象的继承等重要知识点进行了记录。

CYW2019_HUST的博客 927

JavaScript面向对象编程

JavaScript面向对象编程一.实例对象与 new 命令1.对象是什么2.构造函数3.new 命令基本用法[重点]new 命令的原理new.target4.Object.create() 创建实例对象二.this 关键字1.涵义2.实质3.使用场合4.使用注意点避免多层 this避免数组处理方法中的 this避免回调函数中的 this5.绑定 this 的方法Function.prototyp...

xianjs的博客 369

JS——面向对象编程简述

JavaScript 面向对象编程 面向对象介绍 什么是对象? Everything is object (万物皆对象) 对象到底是什么,我们可以从两次层次来理解。 (1) 对象是单个事物的抽象。 一本书、一辆汽车、一个人都可以是对象,一个数据库、一张网页、一个与远程服务器的连接也可以是对象。当实物被抽象成对象,实物之间的关系就变成了对象之间的关系,从而就可以模拟现实情况,针对对象进行编程。 (2) 对象是一个容器,封装了属性(property)和方法(method)。 属性是对象的状态,方法是对象的行为(

Fancy_vae的博客 380
上一篇: JS面向对象之原型
下一篇: Javascript组件化开发设计思想
小菜101
博客等级 码龄10年 16粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值