亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

1. 建立一個(gè)空的Object對(duì)象;

2. 把這個(gè)空對(duì)象用__proto__鏈接到原型

3. 用apply綁定對(duì)象的this指向

4. 返回新的對(duì)象

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

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

下面對(duì)自定義的New方法進(jìn)行驗(yà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)造實(shí)例
let people1 = new People('Jack',20);
console.log(people1.name)  // Jack
console.log(people1.say()) // My name is Jack.

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

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

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

相關(guān)文章

  • 詳解SpringBoot如何實(shí)現(xiàn)緩存預(yù)熱

    詳解SpringBoot如何實(shí)現(xiàn)緩存預(yù)熱

    緩存預(yù)熱是指在 Spring Boot 項(xiàng)目啟動(dòng)時(shí),預(yù)先將數(shù)據(jù)加載到緩存系統(tǒng)(如 Redis)中的一種機(jī)制,下面我們就來看看SpringBoot是如何實(shí)現(xiàn)緩存預(yù)熱的吧
    2024-01-01
  • java文件輸出流寫文件的幾種方法

    java文件輸出流寫文件的幾種方法

    這篇文章主要介紹了java文件輸出流寫文件的幾種方法,需要的朋友可以參考下
    2014-04-04
  • java實(shí)現(xiàn)動(dòng)態(tài)驗(yàn)證碼

    java實(shí)現(xiàn)動(dòng)態(tài)驗(yàn)證碼

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)動(dòng)態(tài)驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Java基于堆結(jié)構(gòu)實(shí)現(xiàn)優(yōu)先隊(duì)列功能示例

    Java基于堆結(jié)構(gòu)實(shí)現(xiàn)優(yōu)先隊(duì)列功能示例

    這篇文章主要介紹了Java基于堆結(jié)構(gòu)實(shí)現(xiàn)優(yōu)先隊(duì)列功能,結(jié)合實(shí)例形式分析了java優(yōu)先隊(duì)列的簡(jiǎn)單定義與使用方法,需要的朋友可以參考下
    2017-11-11
  • Spring Cloud 部署時(shí)使用 Kubernetes 作為注冊(cè)中心和配置中心的方法

    Spring Cloud 部署時(shí)使用 Kubernetes 作為注冊(cè)中心和配置中

    Spring Cloud Kubernetes提供了使用Kubernete本地服務(wù)的Spring Cloud通用接口實(shí)現(xiàn),這篇文章主要介紹了Spring Cloud 部署時(shí)如何使用 Kubernetes 作為注冊(cè)中心和配置中心,需要的朋友可以參考下
    2024-05-05
  • 最新評(píng)論