new.target属性_你可能不知道的 new.target

访客3年前黑客资讯950

new 是组织函数天生实例的下令, ES6为 new 下令引入了 new.target属性。这个属性用于确定组织函数是怎么挪用的。在组织函数中, 若是一个组织函数不是通过 new操作符挪用的, new.target会返回 undefined。


使用场景

  • 若是一个组织函数不通过 new 下令天生实例, 就报错提醒

es5中是这样做的:

    function Shape(options) {
        if (this instanceof Shape) {
            this.options = options
        } else {
            // 要么手动给它建立一个实例并返回
            // return new Shape(options)
            
            // 要么提醒
            throw new Error('Shape 组织函数必须使用 new 操作符')
        }
    }

es6中可以这样做:

    function Shape(options) {
        // if (new.target !== 'undefined') {}  必须要在 constructor中使用 new.target, 在这里判断会报错
        
        constructor(options) {
            if (new.target !== 'undefined') {
                this.options = options
            } else {
                throw new Error('必须使用 new 操作符')
            }
        }
    }

以上代码通过 new.target 属性判断返回的是不是undefined即可知道这个组织函数是不是通过 new 操作符挪用

  • 一个组织函数只能用于子类继续, 自身不能 new

new.target这个属性,当子类继续父类会返回子类的组织函数名称

    class Parent {
        constructor() {
            console.log(new.target)
        }
    }
    
    class Child extends Parent {
        constructor() {
            super()
        }
    }
    
    // Child

以上代码 Child子类继续父类, 那么父类组织函数中的 new.target 是子类组织函数的名称。

划定组织函数只能用于继续

    class Zoo {
        constructor() {
            if (new.target === Zoo) throw new Error('Zoo组织函数只能用于子类继续')
        }
    }
    
    const zoo = new Zoo()   // 报错
    
    class Dog extends Zoo {
       constructor() {
           super()
       } 
    }
    
    const dog = new Dog()  // 不报错

相关文章

哪吒重生电影怎么投资?值得投资吗?成本是多

关于国产动画电影,从2015年上映的《西游记之大圣归来》可以说是第一部燃起影迷热心的神话电影,踏碎灵霄,猖狂桀骜,镣铐破碎,虽没有五彩祥云,但却是一身金甲。让人们对国产动画电影制造充满了期待。还记得2...

电脑黑客高手联系方式 怎么寻找网络黑客高手

  2019年8月,一伙来自中东的黑客悄无声息的遛进了美国政府的网站,黑客们带走了什么没有人清楚,不过后知后觉的美国政府在几个月之后才发出了相关漏洞的预警,这个漏洞存在于美国政府的VPN提供商Pl...

观察网赚钱?做观察问卷赚钱

国内是的經典信用度观查网址详尽推荐(赚钱本来就是浅易的) 1、第一观察网 我国很大 调查站,调查数量多,价格高,如果花十多分钟填完问卷调查观查,就能日赚现金;公布著名品牌点评、添加话题讨论探讨讨论还能...

先付定金的黑客是真的吗

问问他一些基础的常识试试嘛,比如:“你知道Helloworld是什么吗?”并要求他5秒之内答以防他搜索诸如此类的问题还有很多啊,又比如:“你用什么操作。 目前为止黑客技术难度和基础是很难获取的,金钱交...

2020年,中国最赚钱的10大机会

2020年,中国最赚钱的10大机会

站在2019年的尾巴上遥望,2020年必将是中国经济的新起点,一切旧的模式都将尘归尘,土归土。各种新的模式和红利,也将破土而出。 紧握旧地图找不到明天的新大陆,固守旧思维看不到明天的太阳,我们一定要...

全球黑客泄露美国警察(美国黑客窃取疫情数据)

全球黑客泄露美国警察(美国黑客窃取疫情数据)

美国三大情报机构有何区别,都听谁的指挥? 1、在美国情报体系中,它是唯一一个独立的情报部门,直接听命于总统,费用由总统向国会申请,并不用向其他部门汇报,没有上级机构,局长由总统直接任命,主要用于对外情...