位置: 编程技术 - 正文

Javascript学习笔记之函数篇(五) : 构造函数(javascript总结笔记)

编辑:rootadmin

推荐整理分享Javascript学习笔记之函数篇(五) : 构造函数(javascript总结笔记),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript入门教程,javascript入门教程,javascript学习指南,javascript如何学,javascript怎么学,javascript如何学,javascript学习指南,javascript基础笔记,内容如对您有帮助,希望把文章链接给更多的朋友!

Javascript 中的构造函数与其他语言相比也是不同的。任何通过关键字 new 调用的函数都可以当做构造函数。在构造函数体内,this 指向新创建的对象。如果构造函数体内没有显示的 return 表达式,那么我们就默认返回 this,也就是新建的对象。

上面的代码将 Foo 作为构造函数进行调用,并将新建对象的原型(__proto__)指向了 Foo.prototype。如果我们在构造函数内定义返回的 return 表达式,构造函数就会返回整个表达式,但这个返回表达式必须为一个对象。

如果 new 被省略,那么函数将不能返回一个新的对象。

上面的例子可能在某些场景下也可以运行,但由于 Javascript 中 this 的工作机制,这里 this 将指向全局对象。

工厂模式

为了能够不使用关键字 new,构造函数将不得不显示返回一个值。

Javascript学习笔记之函数篇(五) : 构造函数(javascript总结笔记)

上例中使不使用 new 来调用函数 Bar 达到的效果是一样的,将会返回一个新建的包含 method 方法的对象,这里实际上就是一个闭包。这里需要注意一点,new Bar() 将不会返回 Bar.prototype,而是在 return 表达式内函数 method 的原型对象。上例中,使用 new 与否在功能上是无差异的。

通过工厂模式创建新的对象

我们经常被提醒不要使用 new,因为一旦忘记了它的使用将导致错误。为了创建一个对象,我们更愿意使用工厂模式并在工厂模式内构造一个新的对象。

尽管上例代码比使用 new 时更不容易出错,而且在使用私有变量时将更加方便,但同时也有一些不好的地方:

因为不能共享原型对象,所以需要更多的内存。为了实现继承,工厂模式需要拷贝另一个对象的所有方法或者将其作为新对象的原型。放弃原型链只是为了避免使用 new,这似乎与 Javascript 语言的精神相悖。

总结

尽管使用 new 可能比较容易产生错误,但这并不能成为放弃使用原型链的原因。至于最后采取哪种方式,这需要根据应用的需求而定。最好的方式就是选择一种风格并坚持下去。

简单的说构造函数就是初始化一个实例对象,对象的prototype属性是继承一个实例对象。

Javascript学习笔记之函数篇(六) : &#;作用域与命名空间 在之前的介绍中,我们已经知道Javascript没有块级作用,只有函数级作用域。functiontest(){//ascopefor(vari=0;i;i++){//notascope//count}console.log(i);//}Javascript中也

Javascript 赋值机制详解 今天回答了一个关于Javascript的问题,涉及到了赋值问题,因此想把这个问题好好总结下。vara='test';varb=function(){};b.a='test';functionchange(m,n){m='change';n.a='chang

Javascript学习笔记之数组的遍历和 length 属性 尽管数组在Javascript中是对象,但是不建议使用forin循环来遍历数组,实际上,有很多理由来阻止我们对数组使用forin循环。因为forin循环将会枚举原型链

标签: javascript总结笔记

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

上一篇:Javascript学习笔记之函数篇(四):arguments 对象(javascript总结笔记)

下一篇:Javascript学习笔记之函数篇(六) : 作用域与命名空间(javascript基础笔记)

  • 个人注册电子税务局
  • 息税前利润变动率的计算公式
  • 房地产企业增值税管理办法
  • 餐饮增值税发票抵扣
  • 转回存货跌价准备为什么是可抵扣暂时性差异
  • 小规模变一般纳税人需要哪些资料
  • 金蝶专业版怎么导入备份账套
  • 付汇代扣代缴增值税纳税期限
  • 企业取暖费怎么做会计分录
  • 公司进行债务重构的原因可能包括
  • 百望税控盘电子发票
  • 我国的税收管理体制和方向
  • 个人销售货物缴纳增值税吗
  • 公司注销时资本要交税吗
  • 起征点是什么意思举例子说明
  • 早教加盟需要
  • 本月应该确认收入,但是一般下月才开票该怎么处理?
  • 销售已作进项税转出的固定资产怎样缴税?
  • 汽车保险费里的钱能退吗
  • 小规模企业增值税税率是多少
  • 高新企业奖励补贴交税吗
  • windows10如何切屏
  • 默认网关为什么有两个
  • 拍卖获得收入个税
  • 研发费用的会计和税法的不同
  • Vue3+element-plus 后台管理系统(含登陆注册功能页面)
  • go dll
  • 转让专利权的会计处理结果
  • 工程施工和工程结算科目
  • 项目资本金现金流量表现金流入
  • vue框架教程视频
  • 什么是神经网络算法
  • layui 使用
  • h5移动端网页设计
  • nlp自然语言处理框架
  • 流动比率越高越好嘛
  • js经典案例代码大全
  • 分公司需要交所得税吗
  • 营改增后工程分包财务
  • 长期待摊费用属于调整账户吗
  • mysql触发器在哪里建
  • 投资性房地产在资产负债表中的列示
  • 生产型出口企业的概念
  • 装修增值税税率是多少2022
  • 回扣发票能查出来么
  • 进口环节缴纳关税计入什么科目
  • 个税手续费返还增值税申报表怎么填
  • 上年亏损次年赢亏怎么算
  • 一般纳税人购买原材料会计分录
  • 公司股东投资是什么意思
  • 计提工资的核算流程
  • 企业员工福利费可以做什么
  • 购买材料时如果没有取得购买材料的发票
  • 计提工资时个税怎么处理
  • 企业缴纳社保要下载什么软件
  • 公账发工资如何记账
  • 现金支票取现的法律规定
  • mysql 5.7.16 zip包安装配置方法图文教程
  • 数据库备份sqlserver
  • Win2008 Server Core如何操作?5个步骤学会Win2008 Server Core操作
  • bios设置bios密码
  • windowsxp文件
  • Win10 Mobile Build 10572 其它未记录更新内容汇总
  • mac 鼠标调整
  • 原版windowsxp安装
  • 返回场景和音乐的区别
  • js信息框
  • 如何使用jquery绑定事件
  • shell脚本实现输出字母个数大于5的单词
  • mysql源码安装和二进制安装
  • 批处理文件修改注册表键值
  • 深入理解typescript 豆瓣
  • jquery.js插件
  • javascript获取html元素的方法
  • 增值税0申报操作流程
  • 深圳在线ca办理平台
  • 小规模纳税人开3%专票怎么交税
  • 航空煤油消费税征收环节
  • 上海电子税务平台开票不含税怎么改成含税
  • 小企业会计准则会计科目表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设