亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

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

問(wèn)題描述

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

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

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

問(wèn)題解答

回答1:

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

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

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

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

回答2:

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

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

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

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

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

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

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

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

如果構(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ì)象,ps:一般情況下構(gòu)造函數(shù)不返回任何值,不過(guò)用戶如果想覆蓋這個(gè)返回值,可以自己選擇返回一個(gè)普通對(duì)象來(lái)覆蓋。當(dāng)然,返回?cái)?shù)組也會(huì)覆蓋,因?yàn)閿?shù)組也是對(duì)象。

即使 ES6 增加了類,也只是語(yǔ)法糖:

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

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

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

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

回答4:

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

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 99v视频国产在线观看免费 | 国产一区影视 | 国产一区二区三区亚洲欧美 | 手机在线观看精品国产片 | 真实男女xx00动态视频免费 | 性xxxxbbbbxxxx中国| aaaa级日本片免费视频 | 日韩精品一区二区三区高清 | 真实国语对白视频播放 | 伊人丁香婷婷综合一区二区 | 亚洲欧美日韩中文字幕在线一 | 一区二区手机视频 | 精品视频在线免费 | 亚洲国产日韩a在线播放 | 久久国产经典视频 | 91精品欧美一区二区三区 | 国产高清视频在线播放www色 | 深夜国产一区二区三区在线看 | 亚洲第五色综合网 | 国产裸舞福利在线视频合集 | 色成人亚洲 | 黄色在线视频免费 | 欧美唯爱网 全黄性播放 | 97青青青国产在线播放 | 性生活视频黄色 | 国产精品天天影视久久综合网 | 亚洲国产精品xo在线观看 | 国产ssss在线观看极品 | 国产无遮挡裸体免费视频在线观看 | 日韩午夜伦y4480私人影院 | 尤物视频在线 | 国产精品亚洲精品日韩动图 | 国内精品露脸在线视频播放 | 欧美日韩国产在线播放 | 国内真实愉拍系列情侣 | 欧美国产亚洲精品a第一页 欧美国产亚洲一区 | 97精品高清一区二区三区 | 国产麻豆媒一区一区二区三区 | 香蕉网站狼人久久五月亭亭 | 尤物视频免费在线观看 | 在线观看国产一区二区三区99 |