位置: 编程技术 - 正文

javascript每日必学之封装(javascript题)

编辑:rootadmin

推荐整理分享javascript每日必学之封装(javascript题),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript every,javascript题,javascript经典,javascript 日志,javascriptj,javascript题,javascript 日志,js每天执行一次,内容如对您有帮助,希望把文章链接给更多的朋友!

朋友们好,前面我们已经讲解了有关javascript的基础,从今天的内容开始,我们就要开始讲有关封装的内容了,这里,我们就一点一点地接触到OOP(面向对象编程)了,如果作为一门语言使用的程序员连OOP都不知道是什么,或者只听说过,自己没有去领悟,不能写出面向对象的代码,那么也没有学习程序的必要了,下面我先会给大家详细的介绍面向对象是什么,面向过程是什么,要想弄明白面向对象,首先我们就必须知道面向过程。在你已经弄明白了面向过程之后,我们也不能盲目地为了OOP而OOP,那样只会是做一些徒劳的事,因为在大多数时候,我们写一些代码只是为了解决一小事情,那么,我们就没必要写OOP了,只需要写一些面向过程的代码就可以了,用个词来形容“因地制宜”。

  我们就先从面向过程开始,先来解释一下过程是什么意思,我们平时所说的“程序”二字其实过程,执行一个程序,也就是执行一个过程,例如:上班,就是一个程序,其中的过程经过是,9点准时到公司,做一些自己应该完成的事,下午6点不管做成什么样,上班的过程做完了,离开公司,这就是过程;再来个更具体的例子,取款,执行的过程我们就写得更明白一点:

1、带上银行卡到ATM

2、插入银行卡

3、输入密码

4、输入取款数目

5、ATM吐钞

6、把钱放入自己兜里

6、如果发现没有取到自己想要数,返回第4步

7、如果要打印回执单,就点击打印回执单;如果不打印,就省略该步骤

8、退卡

9、程序完毕

从上面的步骤我们可以看出,从第一步到最后一步,这就是执行顺序,第4到第6步就是一个循环过程,第7步是个分支过程,这就是过程,也就是程序。我们写代码的目的就是模拟一些行为过程,用计算机的高速运算的特点为我们的生活服务。

我们就可以把取款封装成一个函数,这样,这就是一个独立的过程,在需要的时候,我们就可以调用这个函数,就能完成我们的工作需要,下面我们就用一个最简单的例子来表达一个最简单的程序过程

看图说话,在合适的时候,我们调用KissWife函数,输入合适参数,我们执行完一个过程了。

  OOP的目的就是提高代码的重用率,用最少的代码干尽量多的事,使用参数,也是面向对象编程的一种体现,我们来举个反例,如果我们在不使用参数的情况下,我们在想亲别人老婆的时候,就要重新写一个KissWife函数,这样,我们就写了大量重复的代码,不方便代码管理,诸多不便,方法不顺溜,就算在亲别人老婆的时候被发现的机率就大大增加了,带来了一些不必要的麻烦。

javascript每日必学之封装(javascript题)

这时候有同学想问了,我觉得,我觉得我不习惯使用参数,就是不想传递参数,代码管理哪里会出现不方便管理呢?好,这个问题问得相当的到位。

我来解释一下吧,如果在这个过程执行过程中,我们发现有不合理的地方,需要修改,例如,我还想伸个舌头啥的,我们就要在亲自己老婆的函数中修改(麻烦),还要在亲别人老婆的函数中修改(麻烦+1),当我们有很多个类似的函数的时候,是不是要全部做修改(麻烦+n);第二个坏处就是修改次数多了,你能保证一次性全部修改都不会出错吗(容易失误),这就能体现出了,如果我们只是完全写一些重复性的代码,工作效率大打折扣。

  通过上面的讲解,其实新手读者们还是没能理解什么是OOP(面向对象编程),我们现在就从对象(object)开始讲解,这里的对象,不能单纯地理解成谈恋爱时所处的男女朋友,对象是指世间的万事万物,太阳,大海,人,宠物……;每一种我们可以想得到的事物,每一个对象都有自己的属性,行为。

我们就可以像上图这样来理解,鸟就是一个对象,它有自己属性,有自己的行为,下面我们就用具体代码来封装一个关于鸟的类。(注:在javascript语言中function关键字中仅仅用来定义函数,也可以定义类,它不能像高级语言那样使用Class关键字,后面我们讲继承的时候,我们还会用特殊方法来实现继承)

现在我们类已经声明好了,但是我们,怎么使用它呢?现在它只是一个类,还不是实例,就是我口头上所说的鸽子,实例,就是一只具体的鸽子,怎么才能得到一只具体的鸽子呢?看下面的代码

现在我们就可以调用它的属性,以及方法了

通过这样的方法我们所得到的每一个鸽子其实都是一样的,我们要怎么才得到有自己特征的鸽子呢?有自己独有特征,其实就是属性不一样,那们我们就来改造一下函数的声明

然后我们来看一下实例化一个鸽子的时候,怎么做

这样,我们就可以构造出有自己特征的鸽子出来了,从上面的例子,我们其实已经不难看出,封装,其实就是把我们可以形容的对象用类来表示,我们就可通过new关键字来实例化出对象,这个对象就有自己独立的属性,行为,这样的一个对象,我们就可以方便的供我们操作,封装就是一种体现OOP的方法,我们先是封装一个类,然后,再new 出实例,这样写就比我们直接用代码来构造两次鸽子类少了很多的代码,如果我们还构造第3只鸽子,就再new 一次就可以了,构造对象的时候,就感觉一句代码的事。提高代码的重用率,OOP就这样体现出来了。

  这时候,有人问了,只是在说我们用OOP的好处 ,还没有看到不用OOP的代码到底怎么写,那们就来一个不用OOP的方式,同样以鸽子为例

如果我们要再声明个鸽子,是不是要写大量重复类似上面这样的代码呀,这就是面向过程的代码。相信新手朋友们已经有一个模糊的OOP概念了吧,慢慢体会,这种感觉不一两天就能弄明白的,一口吃不成大胖子,后面我们还会继续讲OOP思想的继承和多态。

继续先前在声明Bird类的时候,说的属性和行为是同一级别,而且是可以用两种方式来声明,属性在构造函数里面用 this 关键字声明,行为函数用 prototype 关键字来声明,prototype就是函数原型链的标准扩展,我们之所以这样来写,就是把javascript语言的使用代入高级语言的范畴,用来模拟高级语言的使用,扯远了,我们先来验证一下Bird实例对象中是不是拥有在同一级别的属性跟行为函数

看到了吧,for...in就作用就是用来循环遍历对象的属性以及数组的下标,行为函数的名称其实也是对象的属性,现在就验证了前面的说法,相信大家现在对OOP的封装思想有一定的认知了。

总结一下,今天我们所讲的东西其实就是把事物给抽象的拟态一下,然后,把这些属性行为给封装成一个类,使用new关键字实例化出具体对象,这样大大地提高了代码的使用率,提高了工作效率。

学习Javascript面向对象编程之封装 Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中

理解javascript封装 封装可以被定义为对对象的内部数据表现形式和实现细节进行隐藏。通过封装可以强制实施信息隐藏。在JavaScript中,并没有显示的声明私有成员的关键

JS实现的仿QQ空间图片弹出效果代码 本文实例讲述了JS实现的仿QQ空间图片弹出效果代码。分享给大家供大家参考,具体如下:scripttype="text/javascript"functionimageShow(which_click){varimage_path=which_cli

标签: javascript题

本文链接地址:https://www.jiuchutong.com/biancheng/380416.html 转载请保留说明!

上一篇:JavaScript tab选项卡插件实例代码(js tab选项卡)

下一篇:学习Javascript面向对象编程之封装(javascript要学到什么程度)

  • 小规模纳税人如何计算增值税
  • 个人所得税年度汇算时间
  • 海关完税凭证抵扣清单在哪里
  • 劳务派遣的开票规范
  • 为职工代垫的水电费应计入
  • 经营范围预付卡是什么
  • 申报个人所得税会计分录
  • 工资发放流程以及如何记账
  • 固定资产净残值率是多少
  • 分批收款收据怎么写
  • 无合同销售收入怎么算
  • 交易性金融资产的交易费用计入哪里
  • 营改增后加工行业的税率是多少?
  • 纳税人签字
  • 餐饮装修费用计入什么科目
  • 购进要不要交印花税
  • 应收账款转让的会计处理
  • 对外开具发票
  • 公司投资理财需要纳税吗
  • 绩效奖金是否属于工资判决书
  • 华为手机哪一款好用性价比高
  • 一次性收取的房租需要按月纳增值税吗
  • 公司帮员工交的社保公司可以退吗
  • mysql-relay-bin
  • 电脑dwm.exe是什么
  • Win10 Build 19044.1320 (21H2)更新补丁KB5006738预览版发布(附更新修复内容汇总)
  • 苹果macOS 11开发者预览版发布
  • 买房 印花税
  • 其他应收款的会计处理
  • 小程序常见问题
  • php测试mysql 数据库连接
  • 前端工程化的理解简书
  • 发放职工薪酬的账务处理
  • 大学生web网页实训心得体会
  • php-xml
  • 城建税10%用于教育哪方面
  • 损益类科目调整影响所得税吗为什么
  • 云服务器可以一直开着吗
  • 期末结转主营业务收入负数
  • 要求供应商赔偿说明函范本
  • c标准库pdf下载
  • Uncaught DONException: Failed to execute ‘atob‘ on “window ‘: The string to be decoded is not carrec...
  • 固定资产入账是税前还是税后
  • mongodb4.0安装教程
  • mongodb mongoose
  • 发票含税和不含税的区别
  • db2 -968
  • 仓库转租合同
  • 在非企业合并形成的长期股权投资中
  • 增值税专用发票金额与付款金额是否必须一致
  • 行政事业单位拨付给企业的财政补助款用交增值税吗
  • 当月没有凭证还能报税吗
  • 公司应该怎么记账
  • 税控系统专用设备包括税控收款机吗
  • 应付账款的发生额怎么算
  • 违约方缴纳的履约金
  • 以前年度损益调整在报表哪里体现
  • 允许税前扣除的税金及附加包括哪些
  • 如何开展服务工作
  • 其他应付款在借方是代表公司欠人家钱吗
  • 购买设备怎么开专票
  • solaris修改ip地址
  • ubuntu20.04.1安装
  • win7系统图形设置选项
  • win10注销是干嘛的
  • windows预览0x80072ee7
  • linux ssh key登录
  • js中正则表达式语法
  • js 仿真
  • Python实现Mysql数据库连接池实例详解
  • node.js使用教程
  • js如何获取cookie的值
  • unity大神
  • javascript要学哪些
  • Android系统服务
  • 税务疑点核查报告
  • 深圳个人税收完税证明网上打印
  • 绩效三级指标体系
  • 印花税计征周期
  • 烟台国家税务局王局长
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设