最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript中new運(yùn)算符的實現(xiàn)過程解析

 更新時間:2019年10月30日 08:56:22   作者:卑微小陳的隨筆  
這篇文章主要介紹了JavaScript中new運(yùn)算符的實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了JavaScript中new運(yùn)算符的實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

廢話不多說直接進(jìn)入正題,首先我們需要先知道new運(yùn)算符到底做了哪些事情,再來模擬它實現(xiàn)這一功能。

1. 建立一個空的Object對象;

2. 把這個空對象用__proto__鏈接到原型

3. 用apply綁定對象的this指向

4. 返回新的對象

知道了new的具體過程之后,我們就可以來試一下用代碼實現(xiàn)這一過程。

// 傳參 New(obj, ...args)
function New() {
  let obj = new Object();
  // 提取第一個參數(shù)并作為構(gòu)造函數(shù);
  let construction = [].shift.call(arguments);
  // 新對象的__prop__要鏈接到原型鏈
  obj.__proto__ = construction.prototype;
  // 改變this指向
  construction.apply(obj, arguments);
  // 返回新對象
  return obj;
}

下面對自定義的New方法進(jìn)行驗證:

function People(name,age){
  this.name = name;
  this.age = age;
}
People.prototype.say = function () {
  console.log(`My name is ${this.name}.`);
}
//通過new創(chuàng)建構(gòu)造實例
let people1 = new People('Jack',20);
console.log(people1.name)  // Jack
console.log(people1.say()) // My name is Jack.

//通過New方法創(chuàng)造實例
let people2 = New(People,'Rose',18);
console.log(people2.name)  //Rose
console.log(people2.say())  //My name is Rose.

通過輸出結(jié)果可以看出來,我們自己定義的New方法,是可以實現(xiàn)跟new運(yùn)算符同等作用的。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java實現(xiàn)注冊登錄系統(tǒng)

    java實現(xiàn)注冊登錄系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)注冊登錄系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 基于Java回顧之反射的使用分析

    基于Java回顧之反射的使用分析

    本篇文章是對Java反射的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • java正則替換括號中的逗號實現(xiàn)示例

    java正則替換括號中的逗號實現(xiàn)示例

    本文主要介紹了java正則替換括號中的逗號實現(xiàn)示例,主要介紹了兩種示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • Java 實現(xiàn)對稱加密算法

    Java 實現(xiàn)對稱加密算法

    這篇文章主要介紹了Java 實現(xiàn)對稱加密算法的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-11-11
  • java如何獲取byte的高四位和低四位

    java如何獲取byte的高四位和低四位

    這篇文章主要介紹了java如何獲取byte的高四位和低四位,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • SpringBoot整合ActiveMQ過程解析

    SpringBoot整合ActiveMQ過程解析

    這篇文章主要介紹了SpringBoot整合ActiveMQ過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • 一文帶你解讀所有HashMap的面試題

    一文帶你解讀所有HashMap的面試題

    HashMap在面試的時候,是非常容易被問到的。因為在JDK8出來之后,非常容易被問到關(guān)于HashMap的知識點,而如果對于沒有研究過他的源代碼的同學(xué)來說,這個可能只是說出一部分來。本文就把HashMap上面大部分會被在面試中問到的內(nèi)容,做個總結(jié),希望有所幫助
    2022-09-09
  • Java進(jìn)階之高并發(fā)核心Selector詳解

    Java進(jìn)階之高并發(fā)核心Selector詳解

    前幾篇文章介紹了Java高并發(fā)的一些基礎(chǔ)內(nèi)容,認(rèn)識了Channel,Buffer和Selector的基本用法,有了感性認(rèn)識之后,來看看Selector的底層是如何實現(xiàn)的。,需要的朋友可以參考下
    2021-05-05
  • Java實現(xiàn)讀取文件夾下(包括子目錄)所有文件的文件名

    Java實現(xiàn)讀取文件夾下(包括子目錄)所有文件的文件名

    這篇文章主要介紹了Java實現(xiàn)讀取文件夾下(包括子目錄)所有文件的文件名,本文把代碼組織成了一個模塊,可以很方便的使用,需要的朋友可以參考下
    2015-06-06
  • 基于Java swing組件實現(xiàn)簡易計算器

    基于Java swing組件實現(xiàn)簡易計算器

    這篇文章主要介紹了基于Java swing組件實現(xiàn)簡易計算器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04

最新評論

五大连池市| 万州区| 巫溪县| 额济纳旗| 雅江县| 泌阳县| 崇礼县| 绥阳县| 格尔木市| 濮阳市| 滨海县| 平利县| 禄劝| 陆良县| 金川县| 许昌市| 安庆市| 博爱县| 左权县| 平度市| 铁岭市| 博罗县| 尚志市| 方山县| 南川市| 东兴市| 玛纳斯县| 兰考县| 牟定县| 揭阳市| 公安县| 天长市| 柘城县| 大埔县| 南溪县| 武鸣县| 吉安市| 庆云县| 仪征市| 张家口市| 甘德县|