亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

模擬js的new運(yùn)算符的實(shí)現(xiàn)原理

warnerwu / 2985人閱讀

摘要:模擬的運(yùn)算符的實(shí)現(xiàn)原理我們知道,里有一種創(chuàng)建對(duì)象的方式是通過(guò)顯式的構(gòu)造函數(shù)出來(lái)一個(gè)實(shí)例化對(duì)象但是這個(gè)運(yùn)算符是怎么實(shí)現(xiàn)的呢先捋一遍運(yùn)算符的整個(gè)流程創(chuàng)建一個(gè)新對(duì)象它繼承自構(gòu)造函數(shù)的構(gòu)造函數(shù)被執(zhí)行執(zhí)行的時(shí)候相應(yīng)的傳參會(huì)被傳入,同時(shí)綁定上下文如果構(gòu)

模擬js的new運(yùn)算符的實(shí)現(xiàn)原理

我們知道,js里有一種創(chuàng)建對(duì)象的方式是通過(guò)顯式的構(gòu)造函數(shù)new出來(lái)一個(gè)實(shí)例化對(duì)象
但是 這個(gè)new運(yùn)算符是怎么實(shí)現(xiàn)的呢?

先捋一遍new運(yùn)算符的整個(gè)流程:
1: 創(chuàng)建一個(gè)新對(duì)象 它繼承自構(gòu)造函數(shù)的prototype
2:構(gòu)造函數(shù)被執(zhí)行 執(zhí)行的時(shí)候 相應(yīng)的傳參會(huì)被傳入,同時(shí)綁定上下文(this)
3:如果構(gòu)造函數(shù)返回了一個(gè)"對(duì)象" 那么這個(gè)對(duì)象會(huì)取代整個(gè)new出來(lái)的結(jié)果。如果構(gòu)造函數(shù)
    沒(méi)有返回對(duì)象,那么new出來(lái)的結(jié)果為步驟1創(chuàng)建的新對(duì)象
  
![圖片描述][1]

接下來(lái)就手動(dòng)實(shí)現(xiàn)一個(gè)new運(yùn)算符:

 
   
![圖片描述][2]

可以看到 Funky的實(shí)例化對(duì)象funkys 已經(jīng)有了構(gòu)造函數(shù)Funky本身的屬性并且也繼承了Funky原型鏈上的方法
并且 funkys.__proto__ === Funky.prototype
至此,我們已經(jīng)簡(jiǎn)單的實(shí)現(xiàn)了new運(yùn)算的功能 是不是蠻簡(jiǎn)單~

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/98213.html

相關(guān)文章

  • 【進(jìn)階3-5期】深度解析 new 原理模擬實(shí)現(xiàn)

    摘要:使用指定的參數(shù)調(diào)用構(gòu)造函數(shù),并將綁定到新創(chuàng)建的對(duì)象。由構(gòu)造函數(shù)返回的對(duì)象就是表達(dá)式的結(jié)果。情況返回以外的基本類型實(shí)例中只能訪問(wèn)到構(gòu)造函數(shù)中的屬性,和情況完全相反,結(jié)果相當(dāng)于沒(méi)有返回值。 定義 new 運(yùn)算符創(chuàng)建一個(gè)用戶定義的對(duì)象類型的實(shí)例或具有構(gòu)造函數(shù)的內(nèi)置對(duì)象的實(shí)例。 ——(來(lái)自于MDN) 舉個(gè)栗子 function Car(color) { this.color = co...

    Baaaan 評(píng)論0 收藏0
  • 編譯原理實(shí)戰(zhàn)入門:用 JavaScript 寫(xiě)一個(gè)簡(jiǎn)單四則運(yùn)算編譯器(三)模擬執(zhí)行

    摘要:棧在內(nèi)存中,棧的特點(diǎn)是只能在同一端進(jìn)行插入和刪除的操作,即只有和兩種操作。指令的作用是將一個(gè)操作數(shù)推入棧中。指令的作用是執(zhí)行兩次操作,彈出兩個(gè)操作數(shù)和,然后執(zhí)行,再將結(jié)果到棧中。 現(xiàn)在來(lái)模擬一下 CPU 執(zhí)行機(jī)器指令的情況,由于匯編代碼和機(jī)器指令一一對(duì)應(yīng),所以我們可以創(chuàng)建一個(gè)直接執(zhí)行匯編代碼的模擬器。在創(chuàng)建模擬器前,先來(lái)講解一下相關(guān)指令的操作。 棧 在內(nèi)存中,棧的特點(diǎn)是只能在同一端進(jìn)行...

    Ku_Andrew 評(píng)論0 收藏0
  • JS-對(duì)象

    摘要:一概述是一種面向?qū)ο蟮恼Z(yǔ)言。除了基本數(shù)據(jù)類型,其他的都是對(duì)象。表示創(chuàng)建一個(gè)沒(méi)有原型的空對(duì)象。模擬操作符注意返回值訪問(wèn)對(duì)象屬性訪問(wèn)方式也就是。對(duì)象在作為值時(shí),是作為引用傳遞的。假如判斷對(duì)象是否為數(shù)組目前的很多庫(kù),中都是這樣實(shí)現(xiàn)的。 一、概述 JS是一種面向?qū)ο蟮恼Z(yǔ)言。除了基本數(shù)據(jù)類型number, string, boolean(true, false), null, undefined...

    kidsamong 評(píng)論0 收藏0
  • JavaScript專題之模擬實(shí)現(xiàn)call和apply

    摘要:函數(shù)可計(jì)算某個(gè)字符串,并執(zhí)行其中的的代碼男男成功啦實(shí)現(xiàn)了函數(shù)參數(shù)的傳遞,那么函數(shù)返回值怎么處理呢。而且,如果傳入的對(duì)象是,又該如何處理所以還需要再做一些工作處理返回值返回返回值男男判斷傳入對(duì)象的類型,如果為就指向?qū)ο蟆? 本文共 1320 字,讀完只需 5 分鐘 概述 JS 函數(shù) call 和 apply 用來(lái)手動(dòng)改變 this 的指向,call 和 apply 唯一的區(qū)別就在于函數(shù)...

    ky0ncheng 評(píng)論0 收藏0
  • 從零到有模擬實(shí)現(xiàn)一個(gè)Set類

    摘要:過(guò)濾掉和簡(jiǎn)單判斷是否是迭代器對(duì)象模擬行為對(duì)迭代器對(duì)象進(jìn)行遍歷操作??吹竭@里你可能已經(jīng)知道了,要實(shí)現(xiàn)的功能之一就是提供一個(gè)迭代器。原文鏈接參考迭代器和生成器系列之模擬實(shí)現(xiàn)一個(gè)數(shù)據(jù)結(jié)構(gòu)展開(kāi)語(yǔ)法循環(huán) 前言 es6新增了Set數(shù)據(jù)結(jié)構(gòu),它允許你存儲(chǔ)任何類型的唯一值,無(wú)論是原始值還是對(duì)象引用。這篇文章希望通過(guò)模擬實(shí)現(xiàn)一個(gè)Set來(lái)增加對(duì)它的理解。 原文鏈接 用在前面 實(shí)際工作和學(xué)習(xí)過(guò)程中,你可能也...

    PAMPANG 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<