What does Object(this) do?

Dav*_*ing 5 javascript constructor object shim

I noticed in several MDN Array method shims, such as this one on line 7, that they use the following syntax:

var t = Object(this);
Run Code Online (Sandbox Code Playgroud)

this数组在哪里.它不仅没有暗示我的验证器,我对它的作用也毫无头绪.

任何人都可以光明吗?

Jam*_*ice 3

据我所知,它的唯一用途是在将字符串文字传递给Array.prototype.indexOf. 如果删除它并传递一个字符串,则会出现错误:

类型错误:无法使用“in”运算符在字符串中搜索“0”

但是,通过将字符串文字转换为 的实例String,您最终会得到一个对象,该对象对字符串的每个字符都有一个数字属性,并且由于它是一个普通对象,因此您可以对其使用运算符,in并且该方法将返回索引字符串中的字符:

Array.prototype.indexOf.call("hello", "e"); // Returns 1
Run Code Online (Sandbox Code Playgroud)

这是一个使用强制转换为的示例Object,这是一个不使用强制转换的示例


在更一般的情况下,将任何内容传递给Object构造函数都会尝试将该内容转换为对象。因此,您可以向其传递一个字符串文字并获取 back 的实例String,或者向其传递数字文字并获取 的实例Number