JavaScript新建实例不需要带 new 的小技巧

让我们可以不加 new 地新建实例.

首先, 需要使用function而不是class.

function Fish() {
    console.log(this instanceof Fish)
}

测试一下

Fish()
>> false
<- undefined

new Fish()
>> true
<- Fish {}

所以, 可以这样

function Dog() {
    if (!(this instanceof Dog)) {
        return new Dog()
    }
    return this
}

试试

Dog()
<- Dog {}

new Dog()
<- Dog {}

耶✌️

    原文作者:LJZN
    原文地址: https://segmentfault.com/a/1190000020656904
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞