内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

如何進(jìn)行new操作符的原理解析

本篇文章給大家分享的是有關(guān)如何進(jìn)行new操作符的原理解析,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)建站專注于企業(yè)營銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、連城網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)電子商務(wù)商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為連城等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

前端面試—new操作符的原理解析

new實(shí)例

JavaScript中new操作符用于創(chuàng)建一個給定構(gòu)造函數(shù)的對象實(shí)例

function Person(name, age){
	this.name = name;
	this.age = age;
}
const res = new Person('Tom', 20)
console.log(res)  // Person {name: "Tom", age: 20}
原型,構(gòu)造函數(shù),實(shí)例的關(guān)系
  • 原型(prototype):一個簡單的對象,用于實(shí)現(xiàn)對象的屬性繼承??梢院唵卫斫獬蓪ο蟮母赣H。在火狐和谷歌中,每個js對象中都包含一個**proto**(非標(biāo)準(zhǔn))的屬性指向它爹(該對象原型),可obj.__proto__進(jìn)行訪問。

  • 構(gòu)造函數(shù):可以 通過new來新建一個對象的函數(shù)。

  • 實(shí)例:通過 構(gòu)造函數(shù)new創(chuàng)建出來的 對象,就是實(shí)例。實(shí)例通過**proto指向原型,通過constructor**指向構(gòu)造函數(shù)。

因此看得出三者的關(guān)系
實(shí)例.__proto__===原型
原型.constructor === 構(gòu)造函數(shù)
構(gòu)造函數(shù).prototype === 原型
實(shí)例.constructor === 構(gòu)造函數(shù)
new操作符實(shí)現(xiàn)原理
  • 新生成一個對象

  • 鏈接到原型

  • 綁定this

  • 返回新對象(如果構(gòu)造函數(shù)有自己 retrun 時,則返回該值)

function myNew(constrc, ...args) {
	const obj = {}; // 1. 創(chuàng)建一個空對象
	obj.__proto__ = constrc.prototype; // 2. 將obj的[[prototype]]屬性指向構(gòu)造函數(shù)的原型對象
	const result = constrc.apply(obj, args); // 3.將constrc執(zhí)行的上下文this綁定到obj上,并執(zhí)行
	return result instanceof Object ? result : obj;  //4. 如果構(gòu)造函數(shù)返回的是對象,則使用構(gòu)造函數(shù)執(zhí)行的結(jié)果。否則,返回新創(chuàng)建的對象
}

// 使用的例子:
function Person(name, age){
	this.name = name;
	this.age = age;
}
const res = myNew(Person, 'Tom', 20)
console.log(res)  // Person {name: "Tom", age: 20}

以上就是如何進(jìn)行new操作符的原理解析,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享標(biāo)題:如何進(jìn)行new操作符的原理解析
網(wǎng)站網(wǎng)址:http://www.rwnh.cn/article4/jgjgie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、網(wǎng)站營銷、網(wǎng)站設(shè)計、網(wǎng)站制作、虛擬主機(jī)、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營
满洲里市| 北碚区| 米泉市| 大理市| 普兰县| 潜江市| 临颍县| 邵阳市| 兴国县| 循化| 汤原县| 盐城市| 隆德县| 灌云县| 富平县| 开江县| 安乡县| 阜新市| 潜山县| 西城区| 比如县| 沈阳市| 屏东县| 潮州市| 亳州市| 彰化市| 工布江达县| 清流县| 钟祥市| 和田县| 河池市| 宾阳县| 重庆市| 白银市| 连云港市| 桃源县| 嘉义县| 玛沁县| 普安县| 三亚市| 合阳县|