亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Object({a:1}, {b:2}, {c:3})輸出{a:1}為什么?

Object({a:1}, {b:2}, {c:3})輸出{a:1}為什么?

慕尼黑8549860 2018-10-17 13:18:06
Object({a:1}, {b:2}, {c:3}); // output {a:1}為什么會輸出 {a:1},是怎樣的一個過程?
查看完整描述

1 回答

?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

ECMAScript標準中有關于直接調用Object函數的說明?(ES5 15.2.1):

When Object is called as a function rather than as a constructor, it performs a type conversion.

當Object被如同函數調用而不是一個構建式,它會執行類型轉換。

所以如同ToObject(value),這是一個標準中的抽象方法,用來強制轉型為對象類型。

這行為與Array()Number()、String()Boolean()等等函數的調用類似,除了Array()可以有多個傳參,其它都只會用到一個,JS語言中對函數多傳的參數會略過,并不會報錯,試試alert(1,2,3)便知。

這是JS語言中的設計,構建式與函數是作在一起的,構建式是要使用new運算符實例化對象,函數則是直接調用。但根本不會直接使用Object(value)來這樣調用,連new Object(value)也很少見。

對象的聲明大部份時候都是直接用文字字面量,像{ a: 1 }就是對象了。


查看完整回答
反對 回復 2018-11-12
  • 1 回答
  • 0 關注
  • 557 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號