亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

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

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

問題描述

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

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

我記得這個不是構造函數啊,為什么this、new這些都跟構造函數用法一樣?

問題解答

回答1:

javascript 中的任何函數只要用 new 關鍵字調用,它都可以被稱作 構造函數。

當使用 new 關鍵字調用函數時,函數內部會隱式地聲明一個對象,然后把這個對象賦給 this,最后再隱式地返回 this. 使用 new 關鍵字調用樓主的 book 方法時,就相當于以下過程。

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

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

回答2:

javascript 里面沒有類,也沒有構造函數。

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

使用 new 可以創建對象

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

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

當代碼 new foo(...) 執行時:

一個新對象被創建。它繼承自 foo.prototype.

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

如果構造函數返回了一個“對象”,那么這個對象會取代整個new出來的結果。如果構造函數沒有返回對象,那么new出來的結果為步驟1創建的對象,ps:一般情況下構造函數不返回任何值,不過用戶如果想覆蓋這個返回值,可以自己選擇返回一個普通對象來覆蓋。當然,返回數組也會覆蓋,因為數組也是對象。

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

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

你理解錯了構造函數的概念。

實際上,js里不應該有‘構造函數’這一說,而應該理解為函數的構造方法。意思是,任何函數都可以拿來new一個,任何函數都可以叫做‘構造函數’。你在寫所謂‘構造函數’的時候,有發現它和普通函數有什么區別嗎,并沒有吧,他們就是普通函數。

以上,es6箭頭函數除外。

回答4:

js里面每個函數都是相當于一個構造函數(除了真ES6箭頭函數)。哎,神奇的js!

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 日韩国产精品欧美一区二区 | 日韩成人毛片高清视频免费看 | 国产成人微拍精品 | 夜色视频一区二区三区 | 欧美视频www | 天空在线观看免费完整 | 国产大片在线看 | 亚洲黄网址 | 欧美三级超在线视频 | 国产高清美女一级毛片久久 | 久久精品九九 | 欧美一级毛片高清视频 | 曰本女人色黄网站 | 亚洲国产高清视频 | 久草在| 中文字幕欧美在线观看 | 久久精品国产免费一区 | 韩国啪啪网站 | 日本在线观看www免费 | 国产成人免费永久播放视频平台 | 久久精品视频5 | 国产亚洲欧美日韩国产片 | 日本一级毛片片在线播放 | 日本一级爽毛片在线看 | 成人精品久久 | 91看片淫黄大片.在线天堂 | 欧美有码在线观看 | 亚洲精品国产一区二区 | 手机看片日韩日韩国产在线看 | 成人影院久久久久久影院 | 美国一级毛片完整高清 | 美女被免费网站在线视频软件 | 久久免费视频2 | 欧美综合精品一区二区三区 | 在线观看自拍视频 | 国产最新自拍 | 91高端极品外围在线观看 | 亚洲国产成人久久一区www | 国产欧美一区二区三区免费看 | 亚洲精品在线网 | 91久久精品国产免费一区 |