我注意到在几个 MDN 数组方法 shims 中,例如第 7 行的这个,它们使用以下语法:
var t = Object(this);
this
数组在哪里。它不仅没有在我的验证器中暗示,而且我也不知道它的作用。
任何人都可以发光吗?
我注意到在几个 MDN 数组方法 shims 中,例如第 7 行的这个,它们使用以下语法:
var t = Object(this);
this
数组在哪里。它不仅没有在我的验证器中暗示,而且我也不知道它的作用。
任何人都可以发光吗?
据我所知,它的唯一用途是在您将字符串文字传递给Array.prototype.indexOf
. 如果你删除它并传入一个字符串,你会得到一个错误:
TypeError:无法使用“in”运算符在字符串中搜索“0”
但是,通过将字符串文字转换为 的实例String
,您最终会得到一个对象,该对象对字符串的每个字符都有一个数字属性,并且由于它是一个普通对象,您可以in
在其上使用运算符,该方法将返回索引字符串中的字符:
Array.prototype.indexOf.call("hello", "e"); // Returns 1
这是一个带有强制转换的示例 toObject
,这是一个没有它的示例。
在更一般的情况下,将任何东西传递给Object
构造函数都会尝试将该东西转换为对象。因此,您可以将字符串文字传递给它并获取String
back 的实例,或者将数字文字传递给它并获取Number
.