国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - 這不是對象字面量函數(shù)嗎?為什么要new初始化?

瀏覽:50日期:2023-03-12 18:43:43

問題描述

javascript - 這不是對象字面量函數(shù)嗎?為什么要new初始化?

javascript - 這不是對象字面量函數(shù)嗎?為什么要new初始化?

我記得這個不是構(gòu)造函數(shù)啊,為什么this、new這些都跟構(gòu)造函數(shù)用法一樣?

問題解答

回答1:

javascript 中的任何函數(shù)只要用 new 關(guān)鍵字調(diào)用,它都可以被稱作 構(gòu)造函數(shù)。

當(dāng)使用 new 關(guān)鍵字調(diào)用函數(shù)時(shí),函數(shù)內(nèi)部會隱式地聲明一個對象,然后把這個對象賦給 this,最后再隱式地返回 this. 使用 new 關(guān)鍵字調(diào)用樓主的 book 方法時(shí),就相當(dāng)于以下過程。

function Book(id, bookname){ var o = new Object(); o.id = id; o.bookname = bookname; return o;}var b = Book(123,’javascript高級程序設(shè)計(jì)’);

這里的 o 其實(shí)就是我們平時(shí)看到的 this 對象。

回答2:

javascript 里面沒有類,也沒有構(gòu)造函數(shù)。

function Book (){}// Book 是一個函數(shù)typeof Book'function'// Book 是 FunctionBook instanceof Functiontrue// Book 是 ObjectBook instanceof Objecttrue

使用 new 可以創(chuàng)建對象

var book = new Book()// book 是一個對象typeof book'object'// book 不是 Function 的實(shí)例book instanceof Functionfalse// book 是 Object 的實(shí)例book instanceof Objecttrue// book 是 Book 的實(shí)例book instanceof Booktrue

雖然 js 中沒有構(gòu)造函數(shù),但是 MDN 文檔中也使用了這個詞:https://developer.mozilla.org...

當(dāng)代碼 new foo(...) 執(zhí)行時(shí):

一個新對象被創(chuàng)建。它繼承自 foo.prototype.

構(gòu)造函數(shù) foo 被執(zhí)行。執(zhí)行的時(shí)候,相應(yīng)的傳參會被傳入,同時(shí)上下文(this)會被指定為這個新實(shí)例。new foo 等同于 new foo(), 只能用在不傳遞任何參數(shù)的情況。

如果構(gòu)造函數(shù)返回了一個“對象”,那么這個對象會取代整個new出來的結(jié)果。如果構(gòu)造函數(shù)沒有返回對象,那么new出來的結(jié)果為步驟1創(chuàng)建的對象,ps:一般情況下構(gòu)造函數(shù)不返回任何值,不過用戶如果想覆蓋這個返回值,可以自己選擇返回一個普通對象來覆蓋。當(dāng)然,返回?cái)?shù)組也會覆蓋,因?yàn)閿?shù)組也是對象。

即使 ES6 增加了類,也只是語法糖:

class Book{}typeof Book'function'回答3:

你理解錯了構(gòu)造函數(shù)的概念。

實(shí)際上,js里不應(yīng)該有‘構(gòu)造函數(shù)’這一說,而應(yīng)該理解為函數(shù)的構(gòu)造方法。意思是,任何函數(shù)都可以拿來new一個,任何函數(shù)都可以叫做‘構(gòu)造函數(shù)’。你在寫所謂‘構(gòu)造函數(shù)’的時(shí)候,有發(fā)現(xiàn)它和普通函數(shù)有什么區(qū)別嗎,并沒有吧,他們就是普通函數(shù)。

以上,es6箭頭函數(shù)除外。

回答4:

js里面每個函數(shù)都是相當(dāng)于一個構(gòu)造函數(shù)(除了真ES6箭頭函數(shù))。哎,神奇的js!

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 国产成人在线视频 | 国产精品2020| 在线观看视频亚洲 | 偷偷久久| 国产在线啪| 在线观看国产一区 | 免费一级欧美毛片 | caoporen在线视频入口 | jk制服福利在线播放 | 国产乱子伦在线观看不卡 | 一级特黄特色的免费大片视频 | 亚洲网美女 | 国产孕妇做受视频在线观看 | 一级成人毛片免费观看 | 国内自拍网 | 日韩欧美亚洲每的更新在线 | 国产男女猛烈无遮档免费视频网站 | 久久视频在线播放视频99re6 | 91看片淫黄大片欧美看国产片 | 日韩精品一区二区三区四区 | 99在线免费 | 免费看成人毛片日本久久 | 欧美视频在线一区二区三区 | 国内一区二区 | va欧美| 日韩欧美在线综合网高清 | 在线看a级片 | 久久亚洲私人国产精品 | 成人在线黄色 | 毛片大全在线 | 午夜欧美成人香蕉剧场 | 加勒比一区二区 | 97精品国产91久久久久久 | 免费午夜不卡毛片 | 成人夜色香网站在线观看 | 手机看成人免费大片 | 日韩欧美一区二区久久 | 欧美黄色xxx | 美女黄色一级毛片 | 一级毛片视频 | 国产精品久久久免费视频 |