function Car(model, year, miles) {if (!(this instanceof Car)) {return new Car(model, year, miles);}this.model = model;this.year = year;this.miles = miles;this.output = function () {return this.model + "走了" + this.miles + "公里";}
}var tom = new Car("大叔", 2009, 20000);
var dudu = Car("Dudu", 2010, 5000);console.log(typeof tom); // "object"
console.log(tom.output()); // "大叔走了20000公里"
console.log(typeof dudu); // "object"
console.log(dudu.output()); // "Dudu走了5000公里"

通过判断this的instanceof是不是Car来决定返回new Car还是继续执行代码,如果使用的是new关键字,则(this instanceof Car)为真,会继续执行下面的参数赋值,如果没有用new,(this instanceof Car)就为假,就会重新new一个实例返回。

转载于:https://www.cnblogs.com/yzadd/p/6495278.html

构造函数强制使用new相关推荐

  1. java 字段构造函数_依赖注入–字段vs构造函数vs方法

    java 字段构造函数 嗨,今天,我想简短地讨论将依赖项注入您的类的不同方式. 通常,您有以下三种注射方法 直接进入字段/属性 通过显式的setter方法 通过显式的构造函数参数 现场注入 这种类型的 ...

  2. 依赖注入–字段vs构造函数vs方法

    嗨,今天,我想简单地讨论将依赖项注入您的类的不同方式. 通常,您有以下三种注射方法 直接进入字段/属性 通过显式的setter方法 通过显式的构造函数参数 现场注入 这种类型的注入为将所需的依赖项注入 ...

  3. 开心学PHP100天(七)]精讲PHP构造函数:父亲和儿子的恩恩怨怨

    前戏部分: 一.一句话概括php: Php就是用来做web应用的,其中这厮很适合做网站,大名鼎鼎的wordpress就是php开发的.Web以外的应用请一定不要考虑用php做.  本文涉及到的一些关键 ...

  4. [开心学PHP100天(七)]精讲PHP构造函数:父亲和儿子的恩恩怨怨

    前戏部分: 一.一句话概括php: Php就是用来做web应用的,其中这厮很适合做网站,大名鼎鼎的wordpress就是php开发的.Web以外的应用请一定不要考虑用php做.  本文涉及到的一些关键 ...

  5. javascript --- 设计模式之构造函数模式

    在JavaScript里,构造函数通常是认为用来实现实例的,JavaScript没有类的概念,但是有特殊的构造函数.通过new关键字来调用定义的否早函数,你可以告诉JavaScript你要创建一个新对 ...

  6. C++——运算符的重载---以成员函数方式重载---以友元函数方式重载

    一.运算符的重载 1.运算符的重载 允许把标准运算符(如+ - * /等运算符)应用于自定义数据类型的对象,可以提高程序的可读性,运算符的重载本质上还是函数重载.运算符仅仅是语法上的方便,它是另一种函 ...

  7. c# mysql fill_C#里sqlDataAdapter.fill(DataSet,String)的用法

    第二个参数 String是指定DataSet 里表的名字,例如 sqlDataAdapter.fill(DataSet,"学生表") 指定后,以后就可以这样调用这张表 DataSe ...

  8. 硬盘序列号示例_序列化代理模式示例

    硬盘序列号示例 有些书极大地改变了你的生活. 其中一本书是Joshua Bloch撰写的" Effective Java" . 在下面您可能会发现一些小的实验,该实验的灵感来自于本 ...

  9. 为什么数据结构不用java_泛谈Java中的不可变数据结构

    作为我最近一直在进行的一些编码访谈的一部分,有时会出现不变性问题.我自己并不过分教条,但每当不需要可变状态时,我会试图摆脱导致可变性的代码,这在数据结构中通常是最明显的.然而,似乎对不可变性的概念存在 ...

最新文章

  1. javascript Array方法总结
  2. 什么端口可以抓LINUX,linux下抓包工具
  3. C++异常处理try throw catch
  4. C# 中的 in 参数和性能分析
  5. 计算机学术硕士课题,硕士学术论文选题的原则分析
  6. Spring源码学习笔记:经典设计模式之代理模式
  7. linux备份文件放在哪里,linux备份文件命令有哪些?
  8. 洛谷OJ P1036 选数
  9. TeeChart Pro VCL,提供高性能图表
  10. jQuery实现button按钮提交表单
  11. 矩形窗函数rect()和辛格函数sinc()是一组傅里叶变换对相关公式证明
  12. cad老是弹出命令中发生异常_打开CAD是时出现错误报告怎么解决?
  13. Cornerstone 使用详解(版本2)
  14. base_url 是什么
  15. 迅捷PDF转换成word转换器
  16. 微信分享和微信H5跳转到APP开放标签wx-open-launch-app使用及样式设置
  17. Word查找和替换通配符(完全版)
  18. 【腾讯云】音视频存储管理CVS
  19. 100个英语超精简口语短句
  20. HDU Tody HDU2112

热门文章

  1. html输入格式限制,jQuery输入框限制输入内容格式插件
  2. java 异步程序,java异步编程
  3. 不支持给定路径的格式_剑指offer_12_矩阵中的路径
  4. 计算机上的科学计算器怎么使用,电脑自带的科学计算器怎么使用?
  5. jsp面试问题_JSP面试问答
  6. linux命令kill_什么是Linux中的kill命令?
  7. java多线程_Java多线程
  8. linux导出日志命令_Linux中的导出命令
  9. servlet3多文件上传_Servlet 3文件上传– @MultipartConfig,部分
  10. exclude函数计算_Java Stream exclude()函数删除重复项