【发布时间】:2011-04-19 14:20:47
【问题描述】:
JavaScript 中的Object 函数有什么作用?
例如,当我们执行Object(1) 时会发生什么?
【问题讨论】:
标签: javascript function object
JavaScript 中的Object 函数有什么作用?
例如,当我们执行Object(1) 时会发生什么?
【问题讨论】:
标签: javascript function object
它迫使某物成为一个对象。不过,我还没有看到它以这种方式使用。
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.
【讨论】:
new Object 和 new Object()。根据 5.2.2:“当 Object 作为新表达式的一部分被调用时,它是一个可以创建对象的构造函数。”。根据 5.2.2.1:“当 Object 构造函数在没有参数或只有一个参数值的情况下被调用时,将采取以下步骤:[..] 8. Return obj。”所以,行为是一样的。
From the Mozilla developer site:
Object 构造函数为给定值创建一个对象包装器。如果值为 null 或未定义,它将创建并返回一个空对象,否则,它将返回一个与给定值对应的类型的对象。
在非构造函数上下文中调用时,Object 的行为相同。
所以Object(1) 生成的对象行为类似于原始值1,但支持对象功能,例如为属性赋值(Object(1).foo = 2 可以工作,(1).foo = 2 不行)。
【讨论】:
var obj = Object("test");
创建一个字符串“文本”,它非常类似于
var obj2 = "test";
请注意,obj2 的类型是“String”,而 obj1 的类型是“Object”
试试这个:
<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函数是一个构造函数,所有其他类型(如数组、字符串、数字)都继承它。
【讨论】: