扫码关注官方订阅号
Object({a:1}, {b:2}, {c:3}); // output {a:1}
为什么会输出 {a:1},是怎样的一个过程?
{a:1}
欢迎选择我的课程,让我们一起见证您的进步~~
ECMAScript标准中有关于直接调用Object函数的说明 (ES5 15.2.1):
When Object is called as a function rather than as a constructor, it performs a type conversion. 当Object被如同函数调用而不是一个构建式,它会执行类型转换。
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)便知。
Array()
Number()
String()
Boolean()
alert(1,2,3)
这是JS语言中的设计,构建式与函数是作在一起的,构建式是要使用new运算符实例化对象,函数则是直接调用。但根本不会直接使用Object(value)来这样调用,连new Object(value)也很少见。
Object(value)
new Object(value)
对象的声明大部份时候都是直接用文字字面量,像{ a: 1 }就是对象了。
{ a: 1 }
应该是只能接收一个参数,虽然传了三个,但只接收了第一个。Object.length,能看到函数参数个数。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
ECMAScript标准中有关于直接调用Object函数的说明 (ES5 15.2.1):
所以如同ToObject(value),这是一个标准中的抽象方法,用来强制转型为对象类型。
这行为与
Array()、Number()、String()、Boolean()等等函数的调用类似,除了Array()可以有多个传参,其它都只会用到一个,JS语言中对函数多传的参数会略过,并不会报错,试试alert(1,2,3)便知。这是JS语言中的设计,构建式与函数是作在一起的,构建式是要使用new运算符实例化对象,函数则是直接调用。但根本不会直接使用
Object(value)来这样调用,连new Object(value)也很少见。对象的声明大部份时候都是直接用文字字面量,像
{ a: 1 }就是对象了。应该是只能接收一个参数,虽然传了三个,但只接收了第一个。
Object.length,能看到函数参数个数。