为了账号安全,请及时绑定邮箱和手机立即绑定

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

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号