Object(this)有什么作用?

时间:2012-10-31 09:06:20

标签: javascript object constructor shim

我在几个MDN Array方法填充程序中注意到,例如第7行的this one,它们使用以下语法:

var t = Object(this);

this是一个数组。它不仅没有在我的验证器中暗示,我也无能为力。

任何人都可以光明吗?

1 个答案:

答案 0 :(得分:3)

据我所知,当你将一个字符串文字传递给Array.prototype.indexOf时,它的唯一用途是覆盖这种情况。如果你删除它并传入一个字符串,你会收到一个错误:

  

TypeError:不能使用'in'运算符在字符串

中搜索'0'

但是,通过将字符串文字强制转换为String的实例,最终会得到一个带有字符串每个字符的数字属性的对象,因为它是普通对象,所以可以使用{{ 1}}运算符,该方法将返回字符串中字符的索引:

in

此处为an example with the cast to Object,此处为an example without it


在更一般的情况下,将任何内容传递给Array.prototype.indexOf.call("hello", "e"); // Returns 1 构造函数都会尝试将该事物转换为对象。因此,您可以传递一个字符串文字并返回Object的实例,或者传递一个数字文字并获取String的实例。