JS系列之new 操做符

new操做符幹了如下三步:函數

  1. 先建立了一個新的空對象
  2. 而後讓這個空對象的__proto__指向函數的原型prototype
  3. 將對象做爲函數的this傳進去, 或者若是return 出來東西是對象的話就直接返回 return 的內容,沒有的話就返回建立的這個對象
function Person1(name){
        this.name = name;
    }
    function Person2(name){
        this.name = name;
        return this.name;
    }
    function Person3(name){
        this.name = name;
        return new String(name);
    }
    function Person4 (name){
        this.name = name;
        return function () {
        }
    }
    function Person5(name){
        this.name = name;
        return new Array();
    }
    const person1 = new Person1("yuer");//Person1 {name: "yuer"}

    const person2 = new Person2("yuer");//Person2 {name: "yuer"}

    const person3 = new Person3("yuer");//String {0: "y", 1: "u", 2: "e", 3: "r", length: 4, [[PrimitiveValue]]: "yuer"}

    const person4 = new Person4("yuer");//function() {}

    const person5 = new Person5("yuer");//[]
相關文章
相關標籤/搜索