我在几个 MDN 数组方法垫片中注意到,例如 this one在第 7 行,他们使用以下语法:
var t = Object(this);
this
是一个数组。它不仅没有在我的验证器中提示,我也不知道它做了什么。
任何人都可以开灯吗?
最佳答案
据我所知,它的唯一用途是将字符串文字传递给 Array.prototype.indexOf
。如果你删除它并传递一个字符串,你会得到一个错误:
TypeError: Cannot use 'in' operator to search for '0' in string
但是,通过将字符串文字转换为 String
的实例,您最终会得到一个对象,该对象对字符串的每个字符都有一个数字属性,并且由于它是一个普通对象,您可以使用in
运算符,该方法将返回字符串中字符的索引:
Array.prototype.indexOf.call("hello", "e"); // Returns 1
这是 an example with the cast to Object
,这里是 an example without it .
在更一般的情况下,将任何东西传递给 Object
构造函数都会尝试将该东西转换为对象。因此,您可以向它传递一个字符串文字并返回一个 String
的实例,或者向它传递一个数字文字并获取一个 Number
的实例。
关于javascript - Object(this) 是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13154442/