new運算符創(chuàng)建一個用戶定義的對象類型的實例或具有構造函數(shù)的內置對象的實例抖坪。
我們看一下new到底做了什么。
1.創(chuàng)建一個空的JavaScript對象test(即{})屡久;
2.鏈接到原型载慈,將 新對象test的 _proto_?指向 Test 的 prototype
我們使用構造函數(shù)生成的function,所有的屬性和方法是共享的褒纲,他會自動添加一個prototype方法。
這個過程我們可以理解為test._proto_就是一個地址疾嗅,用來連接到構造函數(shù)的prototype對象
3.我們將this指向test對象外厂,為test添加屬性和方法冕象。并返回新對象代承。
Test.call(test);
return test
明白了原理,其實我們就可以自己手寫一個new渐扮。