首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

每天10个前端小知识 【Day 10】

属性 es6为new命令引入了一个new.target属性,它会返回new命令作用于的那个构造函数。...如果不是通过new调用或Reflect.construct()调用的,new.target会返回undefined。...function Person(name) { if (new.target === Person) { this.name = name; } else { throw new...(如果不了解js的运行机制就会答错) 正确答案:1 3 2 解析:无论setTimeout的执行时间是0还是1000,结果都是先输出3后输出2,这就是面试官常常考查的js运行机制的问题,接下来我们要引入一个概念...JavaScript 单线程 JavasScript引擎是基于事件驱动和单线程执行的,JS引擎一直等待着任务队列中任务的到来,然后加以处理,浏览器无论什么时候都只有一个JS线程在运行程序,即主线程。

11410

JS es6的Class类详解

文章目录 JS es6的Class类详解 class基本语法 Class的基本语法之constructor Class的基本语法之类的调用方式 Class的基本语法之getter和setter Class...的基本语法之类的属性名 Class的基本语法的特别注意点 Class的静态属性和方法 Class的私有方法和私有属性 构造函数的新属性 构造函数的新属性 JS es6的Class类详解 class基本语法...构造函数的新属性 ES6 为new命令引入了一个new.target属性,该属性一般用在构造函数之中,返回new命令作用于的那个构造函数。...构造函数的新属性 ES6 为new命令引入了一个new.target属性,该属性一般用在构造函数之中,返回new命令作用于的那个构造函数。...如果构造函数不是通过new命令调用的,new.target会返回undefined,因此这个属性可以用来确定构造函数是怎么调用的。

4.4K20

没对象?new一个呗😝

下面是一些关于new.target的详细介绍:使用方式:* 在构造函数内部,可以通过访问new.target来获取正在被构造的实例的构造函数。...* 如果构造函数是通过new关键字被调用,那么new.target将指向该构造函数本身。* 如果构造函数是直接调用(而不是通过new关键字),那么new.target将为undefined。...功能:* 可以使用new.target来执行一些特定于构造函数调用的逻辑。例如,可以根据是否使用了new关键字来决定是否执行某些初始化操作。* 可以使用new.target来实现基于类的继承。...在派生类中,可以通过super关键字和new.target来访问父类的构造函数。...下面是一个示例代码,演示了如何使用new.target:function Person(name) { if (typeof new.target === "undefined") { throw

14330

JS原生方法原理探究(六)从 Babel 转译过程浅谈 ES6 实现继承的原理

这是JS 原生方法原理探究系列的第六篇文章。 都说 ES6 的 Class 是 ES5 的语法糖,那么 ES6 的 Class 是如何实现的呢?其实现继承的原理又是什么呢?...从 extends 看 JS 继承这篇文章进行了解释,这里我就不重复了)。 接着,调用 Object.create 设置父类的原型为子类原型的 __proto__。...我们使用 Super.apply 的时候,其实 new.target 属性是会丢失的,就像下面这样: function Super(){ console.log(new.target) } new...也仍然指向 Super1;而在传了第三个参数之后,new.target 也没有丢失,只是指向了 Super2(前面我们说过了,某种程度上,可以说 obj1 就是 Super2 的实例)。...所以,这里优先使用 Reflect,是为了保证 new.target 不会丢失。

1.1K10

JS原生方法原理探究(六)从 Babel 转译过程浅谈 ES6 实现继承的原理

这是JS 原生方法原理探究系列的第六篇文章。 都说 ES6 的 Class 是 ES5 的语法糖,那么 ES6 的 Class 是如何实现的呢?其实现继承的原理又是什么呢?...从 extends 看 JS 继承这篇文章进行了解释,这里我就不重复了)。 接着,调用 Object.create 设置父类的原型为子类原型的 __proto__。...我们使用 Super.apply 的时候,其实 new.target 属性是会丢失的,就像下面这样: function Super(){ console.log(new.target) } new...也仍然指向 Super1;而在传了第三个参数之后,new.target 也没有丢失,只是指向了 Super2(前面我们说过了,某种程度上,可以说 obj1 就是 Super2 的实例)。...所以,这里优先使用 Reflect,是为了保证 new.target 不会丢失。

1K20

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券