最佳答案
Object
constructor, when called as a function , 尝试将参数转换为对象,如下所示:
- 如果参数已经是一个对象,则返回它。
- 如果参数是对象可强制转换的( bool 值、数字、字符串或符号),它会将其强制转换为一个对象。
- 如果参数为 null 或未定义,或未传递参数,则返回一个继承自
Object.prototype
的新普通对象。就像您使用({})
一样。
例子:
var obj = [1,2,3], symb = Symbol();
// Object argument
Object(obj); // obj;
// Object-coercible argument
Object(true); // Boolean { [[BooleanData]]: true }
Object(1234); // Number { [[NumberData]]: 1234 }
Object("ab"); // String { [[StringData]]: "ab", 0: "a", 1: "b", length: 2 }
Object(symb); // Symbol { [[SymbolData]]: symb }
// Non-object-coercible argument
Object(null); // Object { }
Object(void 0); // Object { }
Object(); // Object { }
polyfill 使用 Object(this)
因为规范说 Array.prototype.includes
应该使用 ToObject
,但这是内部的东西,不会暴露给 JS 代码。
关于javascript - JavaScript 中的 Object() 和 Object(value) 有什么用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38799734/