new的過程中做了什麼

2021-10-19 14:28:28 字數 637 閱讀 5097

new過程自定義實現

一目了然了,

1.首先以原型copy乙個新物件,這是拿到類上的公共屬性和方法,

object.create()

這個方法是建立乙個物件a,傳入乙個物件b作為這個建立的物件a的原型

那麼這個物件a是作為乙個空白的原型物件給子類的,作為子類的原型,這個物件a的__proto__指向父類原型,因為這個函式,所以原型才能連線起來,組成原型鏈,其實這個函式就是幫忙指了一下__proto__,以及建立了個新物件,自定義也可以實現

2.然後新物件呼叫建構函式,傳入當前物件作為那邊的this(這個操作其實就是你帶著原料去別人工廠加工一下,拿出來給你,變成屬於你的產品,但製作方法還是工廠的),就是借用建構函式

然後返回這個物件

然後下方還有乙個測試,就是new的時候,建構函式寫了返回值,會如何 

如果返回的是{}物件型別,new出來的就會是這個物件型別,如果是其他型別,就還是會返回例項,這和上面 return typeof result === 'object' ? result : child;這個返回判斷操作是一致的

js中的new 到底做了些什麼??

new在執行時會做四件事情 new會在記憶體中建立乙個新的空物件 new 會讓this指向這個新的物件 執行建構函式 目的 給這個新物件加屬性和方法 new會返回這個新物件基於上面的講解,我們執行如下 var obj new base new操作符具體幹了什麼呢?其實很簡單,就幹了三件事情。var ...

理解編譯器在編譯過程中做了什麼

今年開了作業系統課,課上老師提了乙個問題 從乙個儲存程式 的文字檔案到可執行的程式,編譯器做了啥?由於之前買過 深入了解計算機系統 這本書,剛買來時受熱就翻了其中一部分章節,其中就有講到上述所問的講解,索性就參考其上的講解寫出來 我會以乙個hello.c的c程式貫穿整個文章,具體 如下 includ...

js中new操作符做了什麼?

看了好幾篇部落格終於弄懂了new操作符,寫得很相似,但有經過自己的思考的 function foo name,age console.log newfoo lxh 21 foo這是通過new直接建立出乙個物件,那麼new操作符是怎麼實現的呢?function objectfactory 3.拿到引數...