位置: 编程技术 - 正文

JavaScript面向对象之静态与非静态类(javascript面向对象吗)

编辑:rootadmin
直到有那么一天,我开始在js中拼凑DOM标签,而且需要不停的拼凑,我发现我的代码变得愈发的丑陋,不仅上是代码简洁的问题,甚至有时候还引发了性能问题。长此以往,不出三个月,上帝都将会不知道我写过些什么,本篇的目的完全出于记录使用心得。 首先,还是来看一下促使我改变书写JavaScript习惯的垃圾代码,在练习、测试、调试、甚至正式项目中,大量的充斥着下面的代码。 不要告诉我你没有见过上面的代码,说实话,上面的代码确实写得快,调用简单,如果前两个函数还不足以引发你的愤慨,那么第三个函数应该让你有点想问候写这代码创建者的冲动了。是的,第三个函数直接触发了我决定使用面向对象。 实际上,我完全可以把第三个函数改造成下面这样。 这样如何?有进步吧,好,这就是我想要的代码,但是还不够简洁。我希望可以把创建DOM对象封装到一个类中,并且把以上的三个方法都装到一个对象中;那好吧,动手起来是很简单的事情,这种工作不需要上网搜索代码和示例的,直接应用C#的面向对象思维就可以完成。 首先是封装以上的三个方法到一个对象中,封装很简单,应该不用我多废话的,直接上代码。 封装后的三个函数 只需要声明一个User变量来存储上面的三个方法即可,不同的方法间使用逗号分隔,需要注意的是,这时候的User是一个静态的类,无构造函数或者构造函数私有(我猜的),反正不可new了。 其次,我再创建一个封装创建DOM对象的静态类,代码如下: 相当简单,这样我就可以测试一下上面的CreateElement对象是否可正常工作,这次测试是在append方法中进行测试。append方法再次被改造成下面的代码。 目前看来,append工作得相当的良好,好吧,我需要作出一点小改动,我需要在append函数中创建三个a并把它依次添加到obj对象中,代码如下: 代码 最后显示的结果是obj对象中只得到了一个a我十分的不理解,这一个a让我觉得我又回到了C#的怀抱,多么美好呀,经过分析,当我通过Var a= CreateElement .a; 第一次调用在CreateElement.a来获取a对象时,a属性中的document.createElement(“a”)就已经把a对象驻留到内存中,这之后不管我再怎么调用CreateElement.a,实际上都只是得到了内存中a的一个引用,改变的都竟然是同一个对象,这就是静态类的特别之处,但是,当我通过调用CreateElement.element函数来获取对象时,每次我得到的都是一个新的对象,方法不会保存对象的引用,这是肯定的,解决方法就是通过调用CreateElement.element函数来创建新的对象,但是这种方法非面向对象推荐。 另外一种比较好的解决办法是使用非静态类,即实体类的方式,创建非静态类的方式也是相当的简单,代码如下: 直接声明createElement对象,并使之有构造函数,成员间以分号进行分隔,当然如果你喜欢,还可以直接这样写,也是没有一样的效果。 经过上面的声明,我们就可以在append函数中像C#一样使用createElement类来创建DOM对象了。 函数 这样每次new createElement()都是一个新的对象,不存在引用的问题了。 实际上,上面提到的就是Javascript中静态类和非静态类的区别;当然也从中得知,使用静态类非静态类的效率上还是有些差别的,而且调用的时候肯定也是静态类方便一些,如果不计较引用冲突问题,我觉得静态类应该是首选的。

推荐整理分享JavaScript面向对象之静态与非静态类(javascript面向对象吗),希望有所帮助,仅作参考,欢迎阅读内容。

JavaScript面向对象之静态与非静态类(javascript面向对象吗)

文章相关热门搜索词:javascript面向对象编程指南 pdf,javascript面向对象编程 PDF,javascript面向对象精要pdf,javascript面向对象精要pdf,javascript面向对象精要pdf,javascript面向对象精要pdf,javascript面向对象编程指南,javascript面向对象编程指南,内容如对您有帮助,希望把文章链接给更多的朋友!

js 面向对象的技术创建高级 Web 应用程序 JavaScript对象是词典在C++或C#中,在谈论对象时,是指类或结构的实例。对象有不同的属性和方法,具体取决于将它们实例化的模板(即类)。而JavaScript

JavaScript 面向对象代码实践 因此很有必要在这里为同学们举一个例子:JavaScript面向对象代码示例[Ctrl+A全选注:如需引入外部Js需刷新才能执行]

JavaScript类和继承 constructor属性 constructor属性始终指向创建当前对象的构造函数。比如下面例子:比如下面例子://等价于varfoo=newArray(1,,,);vararr=[1,,,];console.log(arr.constructor===Arra

标签: javascript面向对象吗

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

上一篇:javascript面向对象的方式实现的弹出层效果代码(javascript面向对象 第三方类库)

下一篇:js 面向对象的技术创建高级 Web 应用程序(js面向对象是什么意思)

  • 我可以通过什么知道明天的天气情况
  • 逆回购会不会亏本金
  • 流动资产周转天数下降说明什么
  • 工厂房租没有发票怎么办
  • 转出未交增值税在借方是什么意思
  • 劳务税能退税吗现在
  • 金蝶专业版仓库反审核怎么做
  • 股权投资收回的账务处理
  • 收据怎么粘贴在费用报销单上
  • 2019年所得税季度增值税怎么报
  • 增值税税率2019
  • 银行承兑汇票到期日期怎么算
  • 个人股权转让未分配利润如何处理
  • 行政单位会计核算采用
  • 施工单位奖金分配方案
  • 公司收到虚开发票谁承担
  • 材料暂估入库后怎么做账
  • 摊销房租账务处理
  • 一个员工在两家公司上班违法吗
  • 建筑行业小规模企业所得税税率
  • 小规模纳税人计提增值税账务处理
  • 收回债权会计分录
  • 如何看待餐饮企业文化
  • 蔬菜销售收入免增值税吗
  • 子公司和母公司可以一起投标吗
  • 外贸企业出口收入确定
  • 受伤员工补贴
  • 应收账款一般按实际发生额入账
  • 库存商品无发票所得税怎么调增
  • 苹果mac怎么复制文件到u盘 免费软件
  • mac系统 硬盘
  • 增值税专用发票怎么开
  • 拍卖公司财务
  • 2021年8月现在还能去武汉吗
  • 阿拉斯加州zip
  • linux查看du
  • thinkphp5控制器
  • realshed.exe - realshed是什么进程 有什么用
  • 投资性房地产减值准备属于什么科目
  • PHP:imagettftext()的用法_GD库图像处理函数
  • 辛华达瀑布,加拿大贾斯珀国家公园 (© Schroptschop/Getty Images)
  • 供应商自身的品质问题
  • 自产产品管理部门领用
  • php生成随机6位数
  • 蓝桥杯真题c语言
  • node实战
  • vue3当中如何监听新增的属性
  • 小程序从入门到精通
  • 【深度学习】Pytorch实现CIFAR10图像分类任务测试集准确率达95%
  • 企业开具劳务费发票怎么开,税率多少
  • 查账征收利润50万交多少税
  • 自动执行python
  • css怎么制作
  • 以前年度的企业所得税怎么入账
  • 货币基金分红交多少税
  • sqlserver附加数据库语句
  • 资本公积和盈余公积是什么意思
  • 应收账款未收到是否要交税
  • 补付预付账款账务处理分录
  • 固定资产 金额
  • 暂估未取得发票汇缴纳税调增怎么填
  • 过路费属于会计哪个科目
  • 小规模发票跨月冲红税款可以退回吗
  • mysql8.0设置字符集编码
  • windows 7磁盘
  • 怎么更换win系统
  • linux bzz
  • win7系统怎么锁定屏幕
  • unity分发平台
  • css怎么加图标
  • python如何调用c程序
  • json与对象的区别
  • nodejs怎么连接mysql
  • android中的几种动画
  • Python的SQLalchemy模块连接与操作MySQL的基础示例
  • 北京税务总局
  • 江苏国税电子税务局网上申报流程
  • 新疆地方税务局举报电话
  • 税务局纳税服务品牌
  • 区地税局会不会分到乡镇
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设