網上其實有不少說new關鍵字作了哪些操做,讀過以後就忘了,這裏以本身的理解作一個簡單的記錄。函數
function Naji () { this.skulk = function () { return this; } } var naji1 = new Naji ();
new關鍵字作了三步測試
1.建立一個新的空對象this
說明:感受這一步沒什麼好說的spa
2.新的對象被設置爲該函數的上下文code
說明:講真,不容易理解的就是這句話,按照個人理解其中最重要的就是this 指向的問題,我以爲其實就是把構造函數的this指向指向了新的對象;對象
在上面的函數中就是把Naji函數的this指向了對象naji1,這樣新對象naji就能調用Naji中的函數。blog
做爲測試,能夠構建兩個函數io
var naji1 = new Naji (); var naji2 = new Naji (); console.log ( naji1.skulk === niji1 ) // true console.log ( naji2.skulk === niji2 ) // true
3.爲該對象增長一個新的方法console
說明: 也就是這裏的skulk方法,其實我以爲這些都已經在第二步的時候已經作完了,也有多是我理解的問題,歡迎指正!!!謝謝🙏function