Object
函数在JavaScript中是用来创建一个对象的。
例如,当我们执行Object(1)
时会发生什么呢?它会将数字1转换为一个Number对象。
Object
函数在JavaScript中是用来创建一个对象的。
例如,当我们执行Object(1)
时会发生什么呢?它会将数字1转换为一个Number对象。
它强制将某些东西转换为对象。虽然我没有看到它被这种方式使用过。
var num = 1;
var obj = Object(num);
alert(typeof num); //displays "number"
alert(typeof obj): //displays "object"
alert(num + "," + obj); //displays "1,1"
创建一个空对象,以便在其上放置属性和方法的首选、更快捷的方式是使用 {}
。有三种可能的方式来创建一个对象:
var emptyObj = {};
var emptyObj = new Object();
var emptyObj = new Object; // Object does not need an argument, so this is valid.
Object 构造函数为给定值创建一个对象包装器。如果该值是 null 或 undefined,将创建并返回一个空对象;否则,将返回一个与给定值对应类型的对象。
在非构造器上下文中调用时,Object 的行为相同。
因此,Object(1)
会产生一个行为类似于原始值 1
的对象,但支持对象特性,例如给属性分配值(Object(1).foo = 2
可以工作,(1).foo = 2
不行)。
var obj = Object("test");
var obj2 = "test";
<script>
var obj = Object("test");
console.log(obj);
console.log(typeof(obj));
console.log(obj["0"]);
obj2 = "test";
console.log(obj2);
console.log(typeof(obj2));
console.log(obj2["0"]);
</script>
Object
函数是一个构造函数,所有其他类型(如Array、String、Number)都继承它。
new Object
和new Object()
。根据5.2.2节:“当Object作为new表达式的一部分被调用时,它是一个构造函数,可以创建一个对象。” 根据5.2.2.1节:“当没有参数或有一个参数值调用Object构造函数时,执行以下步骤:[...] 8. 返回obj。” 因此,行为是相同的。 - Lekensteyn