new.target (es6)

今天无意间看到个词法new.target !

这是啥玩意儿 在我印象中 new 后跟的都是构造器!这是什么鬼~

let F = function F() {
    if(!new.target)
      throw new Error(‘....‘)
    // ···
  };

查了下发现 其作用就是获取当前new的那个目标构造器

可以保证函数是被当作构造器来使用的 没有就是undefined

以前的话 你想确保函数是被new的 而不是通过直接调用的 也许就会这么干

let F = function F() {
    if(!(this instanceof A))
      throw new Error(‘....‘);
    // ···
  };

不过有点b格的人还是可以这么写

let f = F.apply(Object.create(F.prototype) ,[])

在es6中 class 已经帮你检查过了(是否是new的)

new.target就知道当前是哪个class 下面输出 F2

class F2 extends F{
  constructor() {
    //‘F2‘
    console.log(new.target.name);
  }
}

挺冷门的 兼容还挺惨的 chrome 46 firefox 41

知道就行了

时间: 2024-10-21 21:57:41

new.target (es6)的相关文章

转的es6 =>函数

原文地址 箭头函数=>无疑是ES6中最受关注的一个新特性了,通过它可以简写 function 函数表达式,你也可以在各种提及箭头函数的地方看到这样的观点--"=> 就是一个新的 function". 箭头函数的句法规则甚至早已延伸到各项标准和技术文档中去了,虽然它早已不稀奇,却给我们一种刚刚发现的新鲜感. 粉我的人都知道俺因为某些原因不怎么喜欢 => 的语法,不过别担心,本文并非讲述我为何不喜欢它,如果你对这个观点感兴趣,可以查看我<YDKJS:ES6 &

[Step-By-Step Angular2](1)Hello World与自动化环境搭建

随着rc(release candidate,候选版本)版本的推出,万众瞩目的angular2终于离正式发布不远啦!五月初举办的ng-conf大会已经过去了整整一个月,大多数api都如愿保持在了相对稳定的状态——当然也有router这样的例外,在rc阶段还在大面积返工,让人颇为不解——不过总得说来,现在学习angular2不失为一个恰当的时机. Google为angular2准备了完善的文档和教程,按理说,官网(https://angular.io)自然是学习新框架的最好教材.略显遗憾的是,在B

搭建typescript开发环境最详细的全过程

本文<搭建typescript开发环境最详细的全过程>的源代码在 https://github.com/lingsbb/ts_demo/ 下载. 搭建typescript开发示例https://github.com/Microsoft/TypeScriptSamples typescript案例https://www.tslang.cn/samples/index.html 安装git:http://git-scm.com/download下安装git 安装node:https://nodej

Visual Studio Code使用typings拓展自动补全功能

转自:http://blog.csdn.net/liyijun4114/article/details/51658087 参考来源: 官方介绍: https://code.visualstudio.com/Docs/runtimes/nodejs#_intellisense-and-typings gyzhao写的”Visual Studio Code 使用 Typings 实现智能提示功能”: http://www.cnblogs.com/IPrograming/p/VsCodeTypings

CocosCreator手记03——简单配置VSCode的TypeScript环境

对于基于JavaScript的各种语言,我用过Coffee.但是印象中,除了遍地语法糖,写起来比较快.也没有觉得特别好用. 而TypeScript可谓一门语言,其主要特性有: 兼容 ECMAScript 2015(ES6)规范,可选择编译成ES6或ES5规范的JavaScript代码(ECMAScript 3及以上版本): 面向对象,并拥有一些函数式特性: 类型语言: 实现了注解.泛型等特性: 适配大型App构建. 这些特性,对于曾经使用过强类型语言的开发者,并且对于重构,代码提示有大量需求的团

使用TypeScript开发ReactNative应用的简单示例

最近小小尝试了下 ReactNative + TypeScript 开发APP,爬了无数坑之后总算弄出来个结果,重要的地方记录下,后面会附上示例代码: 1.开发工具的选择 windows 平台我接触的开发工具主要三个, WebStorm,Intellij IDEA 2016.2 版本,https://www.jetbrains.com/ 这两个我都试过,开发完全没问题的,还有PHPStorm估计也行吧,没试过. 另外还有一个是VisualStudioCode:https://code.visua

VS Code开发技巧集锦

2016 年 9 月 23-24 日,由 CSDN 和创新工场联合主办的"MDCC 2016 移动开发者大会? 中国"(Mobile Developer Conference China)将在北京? 国家会议中心召开,来自iOS.Android.跨平台开发.产品设计.VR开发.移动直播.人工智能.物联网.硬件开发.信息无障碍10个领域的技术专家将分享他们在各自行业的真知灼见. 从8月8日起至9月4日,MDCC大会门票处于6.8折优惠票价阶段,五人以上团购更有特惠,限量供应(票务详情链接

Visual Studio Code 不完全使用指南

介绍 Visual Studio Code 是“巨硬”基于 Electron 开发的一款轻量级编辑器,主打 web 开发,支持的语言包括: JavaScript C# JSON HTML Markdown TypeScript CSS, Sass, Less DockerFile Swift Groovy 不断增加中… 快速导航 VS Code 提供了类似于 Sublime 的多功能输入框,Command + P 即可调用出 不使用前缀字符,可以进行工程内的文件搜索:输入前缀字符 ? 可以查看所

Angular2 Hello World 之 2.0.0-beta.14

公司现在采用angualrjs开发一些web应用,采用的是angular1,现在angular2已经差不多了,听说最近rc6已经出来了……其实感觉好慢啊!之前也做过一些anglar2的例子,但是没有记录下来,现在重新拾起来还费了半天劲儿!弄了半天总是报错,按着文件对比了半天也没有找打是哪里写错了……哎!最后发现是版本的问题,这次想把它记录下来,方便之后查看. 环境:Visual Studio 2015 Update 3+Asp.net core templates  一.创建一个 Asp.net