原文:Js中的new原理及其實現

前幾天遇到一個有趣的問題,代碼如下: 運行起來會發現p值是一個動態改變的對象,那么它是怎么做到的呢 下面一起來看看: 上面的代碼我們直接運行了Person方法,發現此時打印的是window對象,原因是函數在調用的時候函數的this指向window,下面我們看一下通過new Person 運行的結果如何: 運行上面的代碼會發現打印了當前的p對象,不難看出,new語法改變了我們調用函數時候的this指 ...

2020-07-08 18:45 0 1634 推薦指數:

查看詳情

JSnew實現原理及重寫

提到new,肯定會和類和實例聯系起來,如: 上面的代碼,我們首先創建了一個函數,如果是用面向對象的說法就是創建了一個Function類的實例,如果直接執行這個函數,那它就是一個普通的函數,如果用new執行,則這個函數被稱為一個自定義的類。 如果是一個普通函數執行 ...

Thu Feb 20 00:09:00 CST 2020 0 979
JSnew運算符的實現原理

創建的新實例;3:如果構造函數返回了一個“對象”,那么這個對象會取代步驟1new出來的實例被返回。如 ...

Fri Jul 20 00:30:00 CST 2018 2 4961
JavaScriptnew實現原理

一、JavaScriptnew實現原理 1、創建一個空對象 obj 2、將該對象 obj 的原型鏈 __proto__ 指向構造函數的原型 prototype, 並且在原型鏈 __proto__ 上設置 構造函數 constructor 為要實例化的 Fn ...

Tue Apr 30 01:23:00 CST 2019 0 1278
new原理實現

從這個例子,可以看到new具有以下能力: 1.new創建出來的實例可以訪問構造函數Person的屬性 2.new創建出來的實例可以訪問構造函數原型上的屬性 3.new可以將構造函數的this綁定到新創建出來的對象person上 無返回值的new實現: ...

Fri Apr 03 20:13:00 CST 2020 0 1212
new實現原理

關鍵字new在調用構造函數的時候實際上進行了如下的幾個步驟: 創建一個新的對象 將構造函數的作用域賦值給這個新的對象(因此this指向了這個新的對象) 執行構造函數的代碼(為這個新對象添加屬性) 返回新對象 我們寫一個函數,命名為objectFactory,來模擬new ...

Tue Feb 12 21:37:00 CST 2019 0 1793
深入理解JS的對象(二):new 的工作原理

目錄 序言 不同返回值的構造函數 深入 new 調用函數原理 總結 參考 1.序言 在 深入理解JS的對象(一):原型、原型鏈和構造函數 ,我們分析了JS是否一切皆對象以及對象的原型、原型鏈和構造函數。在談到構造函數時,應該有注意到箭頭函數 ...

Thu May 14 02:01:00 CST 2020 0 988
jsnew操作符原理解析

js中使用new操作符時,到底做了哪些事情? 在js,我們經常會用到 new 操作符,當我們對構造函數使用new操作符時,具體做了哪些事情呢? 它會完成以下四個步驟: 1.創建一個空的對象 2.設置原型鏈:將新對象的constructor屬性設置為構造函數信息,設置新對象 ...

Thu Aug 12 08:25:00 CST 2021 0 106
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM