new一個對象作了哪些操做

網上其實有不少說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

相關文章
相關標籤/搜索