new一個對象做了哪些操作


網上其實有很多說new關鍵字做了哪些操作,讀過之后就忘了,這里以自己的理解做一個簡單的記錄。

function Naji () {
     this.skulk = function () {
        return this;
    }  
}    

var naji1 = new Naji ();

new關鍵字做了三步

1.創建一個新的空對象

說明:感覺這一步沒什么好說的

2.新的對象被設置為該函數的上下文

說明:講真,不容易理解的就是這句話,按照我的理解其中最重要的就是this 指向的問題,我覺得其實就是把構造函數的this指向指向了新的對象;

在上面的函數中就是把Naji函數的this指向了對象naji1,這樣新對象naji就能調用Naji中的函數。

作為測試,可以構建兩個函數

var naji1 = new Naji ();

var naji2 = new Naji ();

console.log ( naji1.skulk === niji1 ) // true
console.log ( naji2.skulk === niji2 ) // true

3.為該對象增加一個新的方法

說明: 也就是這里的skulk方法,其實我覺得這些都已經在第二步的時候已經做完了,也有可能是我理解的問題,歡迎指正!!!謝謝🙏

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM