构造函数强制使用new
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相关推荐
- java 字段构造函数_依赖注入–字段vs构造函数vs方法
java 字段构造函数 嗨,今天,我想简短地讨论将依赖项注入您的类的不同方式. 通常,您有以下三种注射方法 直接进入字段/属性 通过显式的setter方法 通过显式的构造函数参数 现场注入 这种类型的 ...
- 依赖注入–字段vs构造函数vs方法
嗨,今天,我想简单地讨论将依赖项注入您的类的不同方式. 通常,您有以下三种注射方法 直接进入字段/属性 通过显式的setter方法 通过显式的构造函数参数 现场注入 这种类型的注入为将所需的依赖项注入 ...
- 开心学PHP100天(七)]精讲PHP构造函数:父亲和儿子的恩恩怨怨
前戏部分: 一.一句话概括php: Php就是用来做web应用的,其中这厮很适合做网站,大名鼎鼎的wordpress就是php开发的.Web以外的应用请一定不要考虑用php做. 本文涉及到的一些关键 ...
- [开心学PHP100天(七)]精讲PHP构造函数:父亲和儿子的恩恩怨怨
前戏部分: 一.一句话概括php: Php就是用来做web应用的,其中这厮很适合做网站,大名鼎鼎的wordpress就是php开发的.Web以外的应用请一定不要考虑用php做. 本文涉及到的一些关键 ...
- javascript --- 设计模式之构造函数模式
在JavaScript里,构造函数通常是认为用来实现实例的,JavaScript没有类的概念,但是有特殊的构造函数.通过new关键字来调用定义的否早函数,你可以告诉JavaScript你要创建一个新对 ...
- C++——运算符的重载---以成员函数方式重载---以友元函数方式重载
一.运算符的重载 1.运算符的重载 允许把标准运算符(如+ - * /等运算符)应用于自定义数据类型的对象,可以提高程序的可读性,运算符的重载本质上还是函数重载.运算符仅仅是语法上的方便,它是另一种函 ...
- c# mysql fill_C#里sqlDataAdapter.fill(DataSet,String)的用法
第二个参数 String是指定DataSet 里表的名字,例如 sqlDataAdapter.fill(DataSet,"学生表") 指定后,以后就可以这样调用这张表 DataSe ...
- 硬盘序列号示例_序列化代理模式示例
硬盘序列号示例 有些书极大地改变了你的生活. 其中一本书是Joshua Bloch撰写的" Effective Java" . 在下面您可能会发现一些小的实验,该实验的灵感来自于本 ...
- 为什么数据结构不用java_泛谈Java中的不可变数据结构
作为我最近一直在进行的一些编码访谈的一部分,有时会出现不变性问题.我自己并不过分教条,但每当不需要可变状态时,我会试图摆脱导致可变性的代码,这在数据结构中通常是最明显的.然而,似乎对不可变性的概念存在 ...
最新文章
- javascript Array方法总结
- 什么端口可以抓LINUX,linux下抓包工具
- C++异常处理try throw catch
- C# 中的 in 参数和性能分析
- 计算机学术硕士课题,硕士学术论文选题的原则分析
- Spring源码学习笔记:经典设计模式之代理模式
- linux备份文件放在哪里,linux备份文件命令有哪些?
- 洛谷OJ P1036 选数
- TeeChart Pro VCL,提供高性能图表
- jQuery实现button按钮提交表单
- 矩形窗函数rect()和辛格函数sinc()是一组傅里叶变换对相关公式证明
- cad老是弹出命令中发生异常_打开CAD是时出现错误报告怎么解决?
- Cornerstone 使用详解(版本2)
- base_url 是什么
- 迅捷PDF转换成word转换器
- 微信分享和微信H5跳转到APP开放标签wx-open-launch-app使用及样式设置
- Word查找和替换通配符(完全版)
- 【腾讯云】音视频存储管理CVS
- 100个英语超精简口语短句
- HDU Tody HDU2112
热门文章
- html输入格式限制,jQuery输入框限制输入内容格式插件
- java 异步程序,java异步编程
- 不支持给定路径的格式_剑指offer_12_矩阵中的路径
- 计算机上的科学计算器怎么使用,电脑自带的科学计算器怎么使用?
- jsp面试问题_JSP面试问答
- linux命令kill_什么是Linux中的kill命令?
- java多线程_Java多线程
- linux导出日志命令_Linux中的导出命令
- servlet3多文件上传_Servlet 3文件上传– @MultipartConfig,部分
- exclude函数计算_Java Stream exclude()函数删除重复项